0

実行時に見つかった循環参照JSON.stringify.

循環参照を検出したオブジェクトは、コンソールで次のように表示されます。

LOG|ES5|Object>>{
 "state": true,
 "model": "MAppAMDeleter",
 "client": {},
 "time": {},
 "bin": {
  "arg_this": {},        // I'm guessing this is the culprit
  "foo_id": "610"
 },
 "server": {
  "smalls": {
   "name": "The Foos",
   "page": "ma",
   "h_token": "1FOO",
   "remember": "0",
   "pane": "",
   "privacy": "0",
   "h_file": "1FOO",
   "picture": "1",
   "special": "0"
  },
  "tweets": {},
 }
}

エラーを引き起こす可能性があると私が信じる唯一のものは、実際にオブジェクトリテラルに割り当てるこの行です。

pipe.bin.arg_this = this; // when I assign this, it points to a different object all together.

Safari が、構造化データ (上でコピーしたもの) を含むオブジェクト リテラルを指していると想定する理由を理解しようとしていますが、Firefox は、割り当てた最初のオブジェクト (実際にはページ要素) を参照しているようです。

4

1 に答える 1

1

これを試して:

....
initDynamic: function (event) {
    var pipe;
    event.preventDefault();
    pipe = $A.definePipe('MAppAMDeleter');
    pipe.bin.arg_this = event.target;                  // edited here.
    pipe.bin.arcmark_id = this.id;
    $A.machine(pipe);
}, ....

その理由は、thisjavascript パーサーがオブジェクトを取得しようとするまでに上書きされる可能性があるためです。ブラウザが異なれば、JavaScript の処理方法も (わずかに) 異なります。そのため、クリックされたオブジェクトのフェッチが少し速くなるものもあればthis、最新の担当クラスとして読み込まれるものも遅くなる可能性があります ;)

event.target何があっても、常にクリックされたオブジェクトを指します;)

于 2013-02-10T23:58:30.447 に答える