可能是因为我误解了原型链,但是有人可以解释一下使这个断言成为现实的原型结构吗?
console.log.prototype === console.prototype
我希望它是这样的
console.prototype.log = function(){...}
所以log
有基本的函数原型。该原型如何解析为他的父原型?
我尝试了一些我没想到的东西,但是它们起作用了。例如,而不是:
var binded = console.log.bind(console,'something');
我可以这样做
var otherBind = console.log.bind(console.log,'something else')
答案 0 :(得分:3)
console.log
和console
都不是类构造函数,因此prototype
属性为undefined
。由于undefined === undefined
,console.log.prototype === console.prototype
为true
。
查看Reflect.getPrototypeOf()
,这可能就是您要找的内容。
console.log.bind(console.log)
表示将使用console.log
作为this
值调用此方法。调用绑定函数在Chrome和Node.js上运行正常,但在Firefox(TypeError: 'log' called on an object that does not implement interface Console.
)上失败。请参阅console.log() called on object other than console behaves differently among different browsers。