var obj = {};obj.a = 100;
var arr = []; arr.a = 100;
function fn() {}
fn.a = 100;
console.log(obj.__proto__);
console.log(arr.__proto__);
console.log(fn.__proto__);
console.log(fn.prototype);
console.log(obj.__proto__ === Object.prototype);
1、所有引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性(除了null以外)
2、所有引用类型(数组、对象、函数),都有一个__proto__属性,属性值是一个普通的对象。
3、所有的函数,都有一个prototype属性,属性值也是一个普通的对象。
4、所有引用类型(数组、对象、函数),__proto__属性指向它的构造函数的“prototype”属性值。
5、当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去它的__proto__(即它的构造函数的prototype)中寻找。
JS原型与继承
本文深入解析JavaScript中对象、数组及函数的__proto__属性与prototype属性的作用,揭示了JavaScript的原型链机制,以及属性查找机制。
166

被折叠的 条评论
为什么被折叠?



