我想创建一个对象A,所以我这样写:
A = function() {
}
A.prototype = {
init: function() {
console.log(this);
}
}
new A.prototype.init()
的结果是 A.init {}
。
当我为 A.prototype 创建别名时,如下所示:
A = function() {
}
A.as = A.prototype = {
init: function() {
console.log(this);
}
}
结果是 A.as.A.init {}
而不是 A.init {}
。
为什么? 这个
是如何工作的?
最佳答案
What does “A.fn.A.init {}” mean in javascript?
这并没有什么实际意义。控制台 API 及其生成的输出都不是标准化的。浏览器将应用一些特定于实现的启发式方法来确定对象的“名称”或“类”(它们可能会查看构造函数
属性,但显然所做的不仅仅是这些)。
在这两种情况下,this
都将引用从 A.prototype.init.prototype
继承的新对象,无论控制台选择向您显示哪个名称。
关于javascript - "A.fn.A.init {}"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38067933/