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. Seq関数とofList関数の違いは何ですか?
- 2. javascriptのvar関数と関数の違いは何ですか?
- 3. 関数と*関数の違いは何ですか?
- 4. MPI_ *関数とPMPI_ *関数の違いは何ですか?
- 5. __cudaRegisterFatBinary関数と__cudaRegisterFunction関数のパラメータは何ですか?
- 6. コールバック関数と正規関数の違いは何ですか?
- 7. JS:関数式と関数式の違いは何ですか?
- 8. スレッドエントリ関数と通常関数の違いは何ですか?
- 9. $ httpのデフォルトのtransformResponse関数とtransformRequest関数は何ですか?
- 10. Y関数とは何ですか?
- 11. 関数の__proto__とは何ですか?
- 12. is_admin関数とは何ですか?
- 13. テンソルフローハッシュ関数とは何ですか?
- 14. 関数のテールコンテキストとは何ですか?
- 15. new()関数とは何ですか?
- 16. 'org.hibernate.type VersionType'関数とは何ですか?
- 17. 関数クライアントとは何ですか?
- 18. アンダースコア関数とは何ですか?
- 19. プロトタイプ関数とjavascriptの通常の関数との違いは何ですか?
- 20. この関数の外部関数は何ですか?
- 21. この関数の関数は何ですか?
- 22. Postgresのarray_length関数の関数ソースコードは何ですか?
- 23. 関数の関数はnodejで何をしますか?
- 24. phpのclassとcall_user_func()関数の関係は何ですか?
- 25. 引数をとらない関数とは何ですか?
- 26. PHP5.3で参照関数と通常関数の違いは何ですか?
- 27. Doctrine 2とは何ですか?MySQL関数st_withinに相当するDQL関数
- 28. stop()関数のメリットは、MediaPlayerクラスのpause()関数と比べて何ですか?
- 29. RegExpのexec()関数とStringのmatch()関数の違いは何ですか?
- 30. Win32 APIの `A`関数と` W`関数の違いは何ですか?
を[非推奨](HTTPS:/ /developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/defineGetter)それは「古い」と「現在使用されていない」という意味:-) – cwallenpoole
? –
@DOtNET忍者 - "古い、サポートされていない、使用すべきではありませんが、すでにそれらを使用している人との互換性を損なわないために残っています"。 – vcsjones