給定一個實例變量,是否可以通過JavaScript訪問私有成員?例如,javascript封裝 - 任何訪問給定實例的私有成員的方式?
function class Foo() {
var x=12;
// some other stuff
}
F = new Foo();
// how to get/set F.x?
更新:作爲一個轉折,假設該類有一個特權方法。是否有可能劫持該特權方法來訪問私人成員?
function class Foo() {
var x=12, y=0;
this.bar = function(){ y=y+1; }
}
F = new Foo();
// can I modify Foo.bar to access F.x?
純粹作爲_academic notion_您可以用'eval'來訪問本地關閉範圍注入的方法到真正的對象。我們不用真正的代碼來做這件事。沒有'F.x'如果你想'F.x'然後設置'this.x'。你可以效仿這樣的東西,但它可能會超過工程設計。 – Raynos 2011-04-16 00:41:39
這不是事件有效的JavaScript代碼。沒有'class'關鍵字。 – 2011-04-16 01:46:02