js-原型链
Js-原型链
以下是个人对js原型链的理解
问:说说原型链
答:在js中,所有的对象是由函数构造而来的,所有的函数都有一个prototype属性,所有的对象都有一个隐式属性__proto__,而所有的函数也可以看作是对象。某个实例的隐式属性__proto__对会指向构造这个实例的函数原型prototype,而所有的函数或对象都是由js内置的Function函数或Object函数构造而来的,所有的对象或函数的隐式属性__proto__会指向内置的Function的prototype或Object的prototype,而所有的函数都可以看作是对象,所以Function.__proto__ 指向 Object.prototype,而Object.prototype.__proto__ 指向null
例子:
对象:
let person = {name:'xiaoren',age:24} person.__proto__ === Object.prototype Object.prototype.__proto__ === null
函数:
function f () {} let f1 = new f() f.prototype.__proto__ === Function.prototype.__proto__ Function.prototype.__proto__ === Object.prototype Object.prototype.__proto__ === null f1.__proto__ === f.prototype f.prototype.__proto__ === Function.prototype.__proto__ Function.prototype.__proto__ === Object.prototype Object.prototype.__proto__ === null