假設我有一個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
根據您的使用情況,另一個可能的解決方案是製作一個包含它的包裝類(您控制的)。修改別人的原型往往會導致歷史上的問題。 –