桐乡网站开发,免费ppt模板在哪里下载,哪里有网站设计公司,电脑优化软件哪个好用文章目录 图解原型原型链总结有需要的请私信博主#xff0c;还请麻烦给个关注#xff0c;博主不定期更新#xff0c;或许能够有所帮助#xff01;#xff01;请关注公众号 图解 原型 常被描述为 — 种基于原型的语言–每个对象拥有一个原型对象 当试图访问 一个对象的属性… 文章目录 图解原型原型链总结有需要的请私信博主还请麻烦给个关注博主不定期更新或许能够有所帮助请关注公众号 图解 原型 常被描述为 — 种基于原型的语言–每个对象拥有一个原型对象 当试图访问 一个对象的属性时 它不仅仅在该对象上搜寻 还会搜寻该对象的原型 以及该对象的原型 的原型 依次层层向上搜索 直到找到一个名字匹配的属性或到达原型链的末尾 准确地说 这些属性和方法定义在。bject的构造器函数 (constructor functions) 之上 的 prototype 属性上 而非实例对象本身 函数可以有属性。每个函数都有一个特殊的属性叫作原型 prototype function doSomething(){}console.log( doSomething.prototype );输出原型对象
{constructor: ƒ doSomething(),__proto__: {constructor: ƒ Object(),hasOwnProperty: ƒ hasOwnProperty(),isPrototypeOf: ƒ isPrototypeOf(),propertyIsEnumerable: ƒ propertyIsEnumerable(),toLocaleString: ƒ toLocaleString(),toString: ƒ toString(),valueOf: ƒ valueOf()
}原型对象有一个自有属性 constructor 这个属性指向该函数 如下图关系展示
原型链 原型对象也可能拥有原型 并从中继承方法和属性 — 层 — 层 、以此类推 。这种关系常被称为原型链 (prototype chain) 它解释了为何一个对象会拥有定义在其他对象中的属性和方法 在对象实例和它的构造器之间建立-个链接 (它是 proto 属性 是从构造函数 的 prototype 属性派生的) 之后通过上溯原型链 在构造器中找到这些属性和方法 function Person(name) {this.name name;this.age 18;this.sayName function() {console.log(this.name);}
}
//
var person new Person(person)总结
下面首先要看几个概念 proto 作为不同对象之间的桥梁 用来指向创建它的构造函数的原型对象的 提示这里可以添加技术名词解释
每个对象的 proto 都是指向它的构造函数的原型对象 prototype 的
person1.__proto__ Person.prototype刚刚上面说了 所有的构造器都是函数对象 函数对象都是 Function 构造产生的
Object.__proto__ Function.prototype有需要的请私信博主还请麻烦给个关注博主不定期更新或许能够有所帮助请关注公众号