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

  

posted @ 2018-11-27 12:30  明烟雨任  阅读(227)  评论(0编辑  收藏  举报