1.__proto__
和prototype
-
__proto__
(隐式原型)是任何对象都具有的属性
某个对象的__proto__属性指向创建该对象的父类对象
某个函数的__proto__属性指向创建该函数的父类函数有趣的是
var fn = function(){}; console.log(fn.__proto__)
结果是function();
但是fn.__proto__===Function
却是false
而fn.__proto__===Function.prototype
为true
在这里我的理解是因为在js中“一切皆对象”,所以函数也是对象的一种
我们可以看到把函数当做对象时生成它的函数就是Function同理Object函数也是一个函数对象
var obj = {}; console.log(obj.__proto__===Object.prototype) //true
console.log(Object instanceof Function); // true
Object也是函数,因为Object的结构是function Object(){native code}。 -
prototype
(显示原型)是函数才拥有的属性
一般