当前位置: 首页 > news >正文

中英文网站建设费用网站建设公司企业模板下载

中英文网站建设费用,网站建设公司企业模板下载,网站模板用什么打开,定制网站制作哪家好原型与原型链 原型 在js中#xff0c;每个对象都有一个原型#xff08;prototype#xff09;。原型是一个对象#xff0c;其他对象可以通过原型来共享属性和方法。当我们创建一个对象时#xff0c;它会自动关联到一个原型对象。 例如#xff1a;function Person(name, a…原型与原型链 原型 在js中每个对象都有一个原型prototype。原型是一个对象其他对象可以通过原型来共享属性和方法。当我们创建一个对象时它会自动关联到一个原型对象。 例如function Person(name, age) { this.name name; this.age age; }// 在 Person 构造函数的原型上添加一个 greet 方法 Person.prototype.greet function() { console.log(Hello, my name is ${this.name}.); };const person1 new Person(Alice, 30); const person2 new Person(Bob, 25);person1.greet(); // 输出 Hello, my name is Alice. person2.greet(); // 输出 Hello, my name is Bob.在上面的代码中创建了一个Person对象有通过person创建了person1和person2对象这两个对象都关联到 Person.prototype 原型对象并且可以共享 greet 方法。原型链 原型链是福哦个对象通过原型链条连接在一起的数据结构。当访问一个对象的属性或方法时js引擎会先在对象本身中寻找如果找不到就会沿着原型链继续找知道找到该属性或方法或者达到原型链的顶端Object.prototype 。 举个例子 function Person(name, age) {this.name name;this.age age; }Person.prototype.greet function() {console.log(Hello, my name is ${this.name}.); };const person1 new Person(Alice, 30);console.log(person1.toString()); // 输出 [object Object] 在这个例子中 person1通过原型链继承了toString方法。 所以是Object.prototype原型链的顶端它是所有对象的原型包括内置对象和自定义对象。当查找属性或方法时原型链会一直往上查找直到 Object.prototype。如果在整个原型链上都找不到该属性或方法则返回 undefined。 原型链继承 原型继承是通过原型链来实现对象间的属性和方法共享。在原型继承中一个对象可以从另一个对象继承属性和方法这样可以实现对象之间的复用和扩展。 原型继承的基本概念如下 每个 JavaScript 对象都有一个原型对象prototype它是一个普通对象。当访问一个对象的属性或方法时如果该对象本身没有该属性或方法JavaScript 引擎会沿着原型链向上查找直到找到为止。原型链是由多个对象通过原型关联形成的链条最终的原型对象通常是 Object.prototype它是 JavaScript 中所有对象的原型。如果在整个原型链上都找不到该属性或方法则返回 undefined。 在原型继承中我们可以通过构造函数的原型对象来共享属性和方法。当使用 new 关键字调用构造函数创建对象时新对象会关联到该构造函数的原型从而继承原型上的属性和方法。 下面是一个使用原型继承的简单示例 // 定义一个 Person 构造函数 function Person(name) {this.name name; }// 在 Person 的原型上添加一个 greet 方法 Person.prototype.greet function() {console.log(Hello, my name is ${this.name}.); };// 使用 Person 构造函数创建两个对象 const person1 new Person(Alice); const person2 new Person(Bob);// 调用对象的 greet 方法 person1.greet(); // 输出 Hello, my name is Alice. person2.greet(); // 输出 Hello, my name is Bob.在上面的代码中Person 构造函数的原型对象上有一个 greet 方法通过 new Person() 创建的对象例如 person1 和 person2会共享这个方法。这样我们可以通过原型继承在多个对象之间共享方法提高代码的重用性和可维护性。 需要注意的是原型继承只能继承原型上的属性和方法而不能继承构造函数内部的局部变量。如果需要更灵活的继承方式可以考虑其他方式例如组合继承、原型式继承、寄生式继承等。 js的其他继承方式 组合继承 组合继承时结合了原型链继承和构造函数继承的一种继承方式。他通过在给子类的构造函数中调用父类的构造函数来继承父类的属性并通过将子类的原型指向一个新的创建的父类对象来继承的方法。 function Parent(name) {this.name name; }Parent.prototype.greet function() {console.log(Hello, my name is ${this.name}.); };function Child(name, age) {Parent.call(this, name); // 构造函数继承this.age age; }Child.prototype Object.create(Parent.prototype); // 原型链继承 Child.prototype.constructor Child;const child new Child(Alice, 5); child.greet(); // 输出 Hello, my name is Alice. 寄生式继承 寄生式继承是在原型式的基础上增强新对象添加额外的属性和方法。 function createPerson(proto, age) {const newPerson createObject(proto); // 原型式继承newPerson.age age; // 增强对象newPerson.introduce function() {console.log(I am ${this.name} and I am ${this.age} years old.);};return newPerson; }const person {name: Alice,greet: function() {console.log(Hello, my name is ${this.name}.);} };const newPerson createPerson(person, 30); newPerson.greet(); // 输出 Hello, my name is Alice. newPerson.introduce(); // 输出 I am Alice and I am 30 years old. 寄生组合式继承 寄生组合式继承是对组合继承的一种优化通过构造函数继承属性同时利用Object.create()方法来继承原型避免了调用父类构造函数时产生的不必要的属性重复赋值问题。 function Parent(name) {this.name name; }Parent.prototype.greet function() {console.log(Hello, my name is ${this.name}.); };function Child(name, age) {Parent.call(this, name); // 构造函数继承this.age age; }Child.prototype Object.create(Parent.prototype); // 原型链继承 Child.prototype.constructor Child;const child new Child(Alice, 5); child.greet(); // 输出 Hello, my name is Alice. 构造函数式继承 function Animal(name) {this.name name; }function Dog(name, breed) {Animal.call(this, name);this.breed breed; }const dog new Dog(Buddy, Golden Retriever); console.log(dog.name); // 输出 Buddy
http://www.hkea.cn/news/14468092/

相关文章:

  • 如何对网站进行分析虹口网站开发培训课程
  • 专做外贸的网站纳税服务平台
  • 响应式网站咨询企业管理系统软件公司
  • 哪些公司做网站维护的wordpress写文章怎么添加图片
  • 做网站电脑配置要求个高吗北京备案网站负责人
  • 在线做原型的网站vue适合什么样的网站开发
  • 做网站功能的框架结构图南昌建站推广公司
  • 专门做运动鞋的网站wordpress注释符号
  • 做网站需要规划好什么网站网络推广
  • 龙岩做网站设计公司公司网站被黑有不良信息 做笔录
  • 做网站用的图片分辨率申请网站建设
  • 网站推广的名词解释怎么注册网自己的网站吗
  • 冠县企业做网站推广手机优化管家
  • 短视频网站平台怎么做设计公司和装修公司的区别
  • 注册网站域名的入口是排版设计怎么做
  • 遵义做网站 0852t龙湖建设工程有限公司网站
  • 石家庄智能网站建设网站ip访问做图表
  • 网站顶部可关闭广告中信建设有限责任公司江苏分公司企查查
  • 1.0钓鱼网站开发--站点说明无锡做网站公司哪家好
  • 北美购物网站排名公司建设网站产生哪些费用
  • 关键词优化排名怎么做正规的百度快排seo
  • 网站通栏图片代码怎么用dw网站怎么建设
  • 温州免费建站模板网络营销案例分析心得
  • 网站代码大全石家庄科技网站建设
  • 企业网站源码phpwordpress个人简历
  • 丢了么网站九江 网站建设
  • php学校网站建设php怎么做网站教程
  • 手机网站大全免费网站修改文案
  • asp.net 网站开发项目给浏览器加速的加速器
  • 做网站有限公司软件交易网