JavaScript的原型链
JavaScript中的每个对象都有一个原型对象(也称为proto)。原型对象也可以有自己的原型,并形成一个原型链。
当我们试图访问一个对象的属性时,JavaScript会首先搜索该对象本身是否有该属性,如果没有,它会继续搜索该对象的原型对象,以此类推,直到找到该属性或到达原型链的末端(即Object.prototype)为止。
例如,如果我们创建一个对象并给它一个属性:
var obj = {a: 1};
那么该对象的原型对象是Object.prototype。如果我们尝试访问obj对象的toString方法,JavaScript会先搜索该对象本身是否有toString方法,如果没有,它会继续搜索Object.prototype是否有toString方法,最终找到并调用Object.prototype.toString方法。
如果我们想在原型链上添加一个新的方法或属性,我们可以使用Object.prototype来实现。例如,我们可以添加一个新的方法:
Object.prototype.sayHello = function() {
console.log('Hello!');
};
现在,我们可以在任何对象上调用sayHello方法,因为它存在于它们的原型链上:
obj.sayHello(); // 输出:Hello!
需要注意的是,修改Object.prototype可能会影响到整个代码库中的所有对象,因此应该谨慎使用。
原文地址: https://www.cveoy.top/t/topic/bpnc 著作权归作者所有。请勿转载和采集!