这个问题更多关于支持和向后兼容性。我已经测试了以下代码。
function newFunc() {}
newFunc.prototype = {
literal : {
init : function() {
console.log(this);
this.test();
},
test : function() {
console.log('test');
}
}
}
var inst = new newFunc();
inst.literal.init();
这个方法可行,但我在其他代码中没有看到过对象字面量作为原型的用法。这是有原因的吗?对我来说,这似乎是一种逻辑合理的编码方式,但如果存在严重的缺陷,我不想继续使用。
literal.init
替换为他们想要的任何内容,这个更改将反映在以前创建的每个实例上。如果没有中间的literal
阶段,这是不可能的。 - Jonprototype
也可以像其他对象一样被创建或重新分配。我已经看到过这种模式很多次,但我也很好奇它是否有一些缺点。我会说“没有”…但是好问题。 - basilikumliteral
。其他方法只是该对象的属性,但这并不会破坏this
的工作方式。 - Alnitak