Object
のプロトタイプにある__defineGetter__()
と__defineSetter__()
の機能は何ですか?__defineGetter __()関数と__defineSetter __()関数は何ですか?
答えて
は、説明と例コードのを見る
ゲッターは、特定のプロパティの値を取得する方法です。セッターは、特定のプロパティの値を設定するメソッドです。ゲッターとセッターは、新しいプロパティの追加をサポートする事前定義されたコアオブジェクトまたはユーザー定義オブジェクトで定義できます。
ドキュメント(および@ cwallenpoole)に記載されているように、__define[GS]etter__()
関数は非推奨です。 this articleにはさらに詳しい情報があります。私はdefineProperty()関数が今や好ましい構文だと信じています。
__defineGetter__()
と__defineSetter__()
は、オブジェクトのプロパティのゲッターとセッターを作成する古い/元の方法です。それらは名前/値のペアとしてオブジェクトのプロパティを使用できますが、これらの名前/値のペアは機能によってサポートされています。
たとえば、固定範囲の乱数を参照したいとします。あなたは範囲の最大値を持つ単語としてこれらを表現することができ、それはプロパティのように見えます。
var random = {};
random.__defineGetter__('ten', function() {
return Math.floor(Math.random()*10); });
random.__defineGetter__('hundred', function() {
return Math.floor(Math.random()*100); });
上記の例では、この解決策を使用しないでください。代わりに、ES5以来、ゲッターとセッターの現代的な形を使用する必要があります。
var random = {
get ten() { return Math.floor(Math.random()*10); },
get hundred() { return Math.floor(Math.random()*100); }
};
上記コンストラクトのどちらかは、あなたがこのような乱数を取得できるようになる:
var myrand = random.ten;
// returns a result in the range 0 to 9
ために非常に便利ですが、私は機能と同じことを行うことはできません、そしてゲッターとセッターの特定の使用は何ですか? –
はいできます。私の例はゲッターとセッターの純粋な使い方を示しているだけなので、それほど素晴らしいものではありませんでした。通常、ゲッターとセッターは、可変および/またはより多くの計算機能によってバックアップされます。たとえば、Temperatureというオブジェクトがある場合、CまたはFの温度を返すプロパティCとFを持つことができます。これらは実際にプロパティではなく、オブジェクトに保持されている基本値を変換するメソッド(ゲッター)です。または、そのうちの1つは財産であり、もう1つはコンバージョンを行うゲッターです。 – Guy
- 1. コールバック関数と正規関数の違いは何ですか?
- 2. __cudaRegisterFatBinary関数と__cudaRegisterFunction関数のパラメータは何ですか?
- 3. スレッドエントリ関数と通常関数の違いは何ですか?
- 4. 関数と*関数の違いは何ですか?
- 5. javascriptのvar関数と関数の違いは何ですか?
- 6. 'org.hibernate.type VersionType'関数とは何ですか?
- 7. new()関数とは何ですか?
- 8. Y関数とは何ですか?
- 9. 関数の__proto__とは何ですか?
- 10. この関数の外部関数は何ですか?
- 11. プロトタイプ関数とjavascriptの通常の関数との違いは何ですか?
- 12. 引数をとらない関数とは何ですか?
- 13. PHP5.3で参照関数と通常関数の違いは何ですか?
- 14. Doctrine 2とは何ですか?MySQL関数st_withinに相当するDQL関数
- 15. RegExpのexec()関数とStringのmatch()関数の違いは何ですか?
- 16. Win32 APIの `A`関数と` W`関数の違いは何ですか?
- 17. stop()関数のメリットは、MediaPlayerクラスのpause()関数と比べて何ですか?
- 18. GAMMA.INV(確率、アルファ、ベータ)Excel関数と同等のR関数は何ですか?
- 19. インラインメンバー関数と通常メンバー関数の違いは何ですか?
- 20. jQuery data()関数とは何か
- 21. 関数は何バイト必要ですか?
- 22. は、この何ですか?$(関数(){
- 23. current_user_can()関数のパラメータは何ですか?
- 24. PHPの関数redirect()は何ですか
- 25. Pythonの関数で関数を定義する利点は何ですか?
- 26. JS関数でJS関数を渡すXSSの危険性は何ですか?
- 27. 他の関数を返す関数の戻り値の型は何ですか?
- 28. 関数オブジェクトの属性は何ですか/どこですか? R内の関数で遊んことで
- 29. 関数を含むこのC関数の問題点は何ですか?
- 30. javascript関数内で「これを返す」とは何ですか?
を[非推奨](HTTPS:/ /developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter)それは「古い」と「現在使用されていない」という意味:-) – cwallenpoole
? –
@DOtNET忍者 - "古い、サポートされていない、使用すべきではありませんが、すでにそれらを使用している人との互換性を損なわないために残っています"。 – vcsjones