您的位置:首页 > Web前端 > JavaScript

js中的prototype和__proto__

2016-01-30 00:00 465 查看
prototype是函数的属性,每个函数都拥有一个prototype属性;__proto__是一个对象拥有的内置属性,是new一个实例时动态添加的属性,也是js内部寻找原型链的属性。

prototype属性拥有一个constructor属性和一个__proto__属性,默认情况下constructor指向构造函数自身即fun.prototype.constructor == fun;对于普通对象,__proto__是该对象的原型链即fun.prototype,对于函数,__proto__是fun构造器即Function的prototype(Funtion.prototype)

对象在原型链查找属性时,是沿着__proto__查找的;函数的__proto__是Function.prototype即fun.prototype.constructor.__proto__,而普通对象的__proto__就是obj.__proto__即fun.prototype

function Animal () {

}

Function.prototype.say = function () {
alert("function");
}

Object.prototype.say = function () {
alert("object")
}

Animal.say(); //function
Animal.prototype.say();//object
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: