美文网首页
Array-Object-Function

Array-Object-Function

作者: 梦行乌托邦 | 来源:发表于2020-07-05 11:04 被阅读0次
img1
img2
img3

以上三图发现,Array、Object、Function之间有一些共同的方法

// instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
Function instanceof Object  // true
Array instanceof Object  // true

Function.prototype.__proto__ == Object.prototype // true
Array.prototype.__proto__ == Object.prototype // true

Object.prototype.isPrototypeOf(Function) // true
Object.prototype.isPrototypeOf(Array) // true

Function和Array的prototype都是Object的实例?

JS中所有的对象都是Object的实例,并继承Object.prototype的属性和方法。
因为Array.prototype、Function.prototype是对象,所以它们是Object的实例。

isPrototypeOf、hasOwnProperty、propertyIsEnumerable、valueOf这些都是Object.prototype自己的方法,那么Array和Object能用这些方法,说明Object.prototype在它们的原型链上。

Object.prototype.hasOwnProperty('valueOf') // true
Array.prototype.hasOwnProperty('valueOf') // true
Function.prototype.hasOwnProperty('valueOf') // true

它们都实现了valueOf方法

Array.hasOwnProperty('bind') // false
Array.prototype.hasOwnProperty('bind') // false
Object.hasOwnProperty('bind') // false
Object.prototype.hasOwnProperty('bind') // false
Function.hasOwnProperty('bind') // false
Function.prototype.hasOwnProperty('bind') // true

Array instanceof Function // true
Object instanceof Function // true

Function.prototype.isPrototypeOf(Object) // true
Function.prototype.isPrototypeOf(Array) // true

bind、apply、call、caller、arguments这些都只是Function.prototype自己的方法,那么Array和Object能用这些方法,说明Function.prototype在Array和Object的原型链上?以上代码就证明了这一点。但是
Object.prototype在Array和Function的原型链上
Function.prototype在Array和Object的原型链上
Object和Function的关系???

相关文章

  • Array-Object-Function

    以上三图发现,Array、Object、Function之间有一些共同的方法 Function和Array的pro...

网友评论

      本文标题:Array-Object-Function

      本文链接:https://www.haomeiwen.com/subject/jajeqktx.html