何らかの理由で、カスタムオブジェクトのJavascript getters/settersはIE以外のブラウザでは機能しないようです。IEのJavascriptゲッター/セッター?
IEにはこれ以外の標準的でないメカニズムがありますか? (他の多くの機能と同様に)
同じ機能を実現するための回避策はありますか?
何らかの理由で、カスタムオブジェクトのJavascript getters/settersはIE以外のブラウザでは機能しないようです。IEのJavascriptゲッター/セッター?
IEにはこれ以外の標準的でないメカニズムがありますか? (他の多くの機能と同様に)
同じ機能を実現するための回避策はありますか?
IE8にはdefineProperty
がありますが、DOMオブジェクトのみです。しかし、おそらく、それは最終的にJavaScriptオブジェクトのために来るでしょう。
Resigの記事は、env.jsの実装が、あなたが探しているgettersとsettersの方法論を初めて使用していることを示しています。このスタイルがうまくいくのは、ブラウザベースの環境で使用されていないためです。env.jsは、主にサーバーサイドのJSやRhinoなどのスクリプト環境に重点を置いています。
JavaScriptがうまく機能することに焦点を当てるだけでなく、ブラウザの互換性を処理するには、オブジェクトプロパティを保護するためにgetterメソッドとsetterメソッドでクロージャを使用します。例えば
:もたらす
foo: function(val) {
var bar = val;
this.setBar: function(newBar) {
bar = newBar;
},
this.getBar: function() {
return bar;
}
}
:
var checkFoo = foo("cool!");
alert(checkFoo.getBar()); //cool!
checkFoo.setBar("nice!");
alert(checkFoo.getBar()); //nice!
これはまだ3年後のアドバイスですか?この互換性テーブルを見ると、サポートが好きなようです。つまり、より良いです:http://kangax.github.com/es5-compat-table/ –
はIE6 +用溶液はonpropertychangeイベントと、新しい仕様のDefinePropertyを使用している利用可能です。わずかなキャッチは、変数をdomオブジェクトにする必要があることです。
完全な詳細:古いIEの場合
http://johndyer.name/native-browser-get-set-properties-in-javascript/
あなたが提供したリンクのコアの詳細を追加することができます。あなたの回答が正しいとはいえ、あなたがリンクしているURLが利用できなくなった場合、それは役に立たなくなります。 – talegna
IE9とIE10が今これをサポートしてご覧くださいゲッターとセッター をエミュレートするためにVBを使用することができますブラウザます。http: //kangax.github.com/es5-compat-table/ –
これらはオブジェクトリテラルでサポートされていますが、IEのオブジェクトプロトタイプではサポートされていません(http://robertnyman.com/javascript/javascript-getters-setters.html)。 #正規のゲッターとセッター – roguenet