私はMDNのJavaScriptコードの一部を見ましたが、私はどのようにコードの下で動作するのだろうか、それはどういう意味ですか?奇妙なjsonの使用
var obj = { get x() { return 17; } };
私はMDNのJavaScriptコードの一部を見ましたが、私はどのようにコードの下で動作するのだろうか、それはどういう意味ですか?奇妙なjsonの使用
var obj = { get x() { return 17; } };
は、私の知る限りでは、キーワードget
はちょうどゲッターとしてx()
を分類し、自己呼び出しに表示されます。 jScript(IE)ではサポートされていません。予約語ではありません。
あなたがそうのようにそれを参照したい:obj.x; // 17
をlamenの用語では、これらは同じように動作します:xプロパティ用のゲッターを指定された
var foo = { get x() { return 17; } };
document.write(foo.x); // 17
var bar = { x: function() { return 17; } };
document.write(bar.x()); // 17
これは全く同じではありません。 'foo.x'と' bar.x() ' –
私は同じようにコーディングされているわけではなく、同じように動作します。 – AlienWebguy
は、それはJSONとは何の関係もありません。 JSONはJSオブジェクトの有効なイニシャライザなので混乱しますが、すべてのJS初期化子が有効なJSONであるとは限りません。
この構文は、obj.x
から読み取ると、その値を取得するためにその関数を呼び出すことを意味します。
var obj = {
x: 17
}
、あるいはまた:
var obj = { get x() { return 17; } };
はに等しい
var obj
がオブジェクトを宣言することを意味し、
get x() { return 17; }
がobjオブジェクトのプロパティを宣言し、17の値を持つ
var obj = {
x: (function(){
return 17;
})()
}
:
var myVar = obj.x;//Equals to 17
これはちょっと間違っています...これはgetters/setterの構文です –
申し訳ありません、私は編集して投稿を修正しました。私は今それが正しいと思います。 –
「取得する」とはどういう意味ですか? 。私は同じものではない2つのことです。あなたはjavascriptコンソールから 'dir(obj)'を見ることができます。 –
これはJSONではありません。 – AlienWebguy
ここでget演算子のすべてを読んでください:https://developer.mozilla.org/ja/JavaScript/Reference/Operators/get –