不念为大家推出以下四点重要的知识点:
- 所有的引用类型(数组、对象、函数),都具有对象特性,即可自由扩展属性(`null`除外)
- 所有的引用类型(数组、对象、函数),都有一个`__proto__`属性,属性值是一个普通的对象
- 所有的函数,都有一个`prototype`属性,属性值也是一个普通的对象
- 所有的引用类型(数组、对象、函数),`__proto__`属性值指向它的构造函数的`prototype`属性值
通过以下四个要点,使用代码解释一下
要点一:自由扩展属性
var obj = {}; obj.a = 100;
var arr = []; arr.a = 100;
function fn () {}
fn.a = 100;
要点二:__proto__
console.log(obj.__proto__);
console.log(arr.__proto__);
console.log(fn.__proto__);
要点三:函数有 prototype
console.log(fn.prototype)
要点四:引用类型的 __proto__ 属性值指向它的构造函数的 prototype 属性值
console.log(obj.__proto__ === Object.prototype)
转载请注明:IT运维空间 » linux » 如何才能理解JavaScript的原型?
继续浏览有关 未分类 的文章
发表评论