阳泉住房和城乡建设厅网站,辽阳网站建设58,文案写作软件app,阳泉网站设计在JavaScript中#xff0c;__proto__和prototype都是用于实现对象继承的关键概念。
1、proto
__proto__是一个非标准的属性#xff0c;用于设置或获取一个对象的原型。这个属性提供了直接访问对象内部原型对象的途径。对于浏览器中的宿主对象和大多数对象来说#xff0c;可…在JavaScript中__proto__和prototype都是用于实现对象继承的关键概念。
1、proto
__proto__是一个非标准的属性用于设置或获取一个对象的原型。这个属性提供了直接访问对象内部原型对象的途径。对于浏览器中的宿主对象和大多数对象来说可以使用 obj.proto 访问它们的原型对象。但是不建议使用这个非标准属性因为它在未来的标准中可能会被废弃。
例如
let obj {};
console.log(obj.__proto__); // [object Object]2、Prototype
每个JavaScript对象都有一个prototype属性这个属性是一个指向该对象的原型对象prototype object的引用。当一个对象被创建时它的prototype属性就被设置为其构造函数的prototype属性。这个原型对象自身也有一个prototype属性这个属性指向的是Object.prototype。
在JavaScript中所有的对象都是从其原型对象继承的。当访问一个对象的属性或方法时如果该对象自身没有这个属性或方法那么JavaScript就会在这个对象的原型对象中查找这个属性或方法如果原型对象中也没有那么就会继续在原型对象的原型对象也就是Object.prototype中查找。
在JavaScript中所有函数都有一个prototype属性这个属性是一个包含一个constructor属性指向函数自身和一个proto属性的对象。这个proto属性就是函数的原型对象。
例如
function MyFunction() { }
console.log(MyFunction.prototype); // [object Object]总的来说__proto__和prototype都是用来实现对象继承的但__proto__是非标准的建议使用Object.getPrototypeOf()和Object.setPrototypeOf()这样的标准方法来获取和设置一个对象的原型。