0

オブジェクト内の関数に対して「localStorage」というネイティブメソッドをオーバーライドしようとしています。

これが私がやろうとしていることの要点です:

function SomeObject(){
   this.localStorage = "aaa"; //block access to localStorage for functions INSIDE this object.
      ... (some more code here)
   _testRun(){
      window.testA = localStorage; //chose to store the instance on a window (global-like) object
   }
   this.testRun = function(){ _testRun(); };
   this.testRun2 = function(){ window.testB = localStorage;};v
}
var a = new SomeObject();
a.testRun();
a.testRun2();

(after this, when I look up window.testA and window.testB, they both point to the Native localStorage, not the custom one inside the SomeObject.)

ところで、ドキュメント全体のネイティブ関数をオーバーライドしたくありません。(つまり、オブジェクトの外側でネイティブの localStorage を使用する場合があります)

これを行う方法に関する提案/解決策はありますか? ありがとう!

4

1 に答える 1

0

だけの代わりにwindow.localStorageandを追加してみてくださいthis.localStoragelocalStorage

function SomeObject(){
   this.localStorage = "aaa"; //block access to localStorage for functions INSIDE this object.
      ... (some more code here)
   _testRun(){
      window.testA = window.localStorage; //chose to store the instance on a window (global-like) object
   }
   this.testRun = function(){ _testRun(); };
   this.testRun2 = function(){ window.testB = this.localStorage;};
}
于 2013-03-02T06:57:58.507 に答える