控制台原型的结构

时间:2016-09-14 15:20:56

标签: javascript prototype

可能是因为我误解了原型链,但是有人可以解释一下使这个断言成为现实的原型结构吗?

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')

1 个答案:

答案 0 :(得分:3)

console.logconsole都不是类构造函数,因此prototype属性为undefined。由于undefined === undefinedconsole.log.prototype === console.prototypetrue

查看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