假设我有一个Posts
类。访问原型父项
我可以这样做:
Posts.prototype.foo = function() {
console.log(this);
}
当我打电话post1.foo()
(与post1
作为Posts
类的实例),由控制台输出的this
将等于post1
。
现在考虑以下情形:
Posts.prototype.baz = {
foo: function() {
console.log(this);
},
bar: [1,2,3,4]
}
现在,当我做post1.baz.foo()
的this
值不再post1
,而是{foo: ..., bar: ...}
。
我的问题是:在第二种情况下,如何从foo
内访问post1
?
很好的答案,谢谢!我可能会把它分解成平面原型方法。我其实认为这样做会更“干净”,因为我不会污染班级的名字空间。但后来我碰到这个问题... – Sacha
另外,我不能修改'Posts'类本身,所以我想我不能使用你的其他解决方案。 – Sacha
根据您的使用情况,另一个可能的解决方案是制作一个包含它的包装类(您控制的)。修改别人的原型往往会导致历史上的问题。 –