急募です。jsでvar obj = { hoge(){} };と、var obj = { hoge: function() {} };の違いを教えて下さい。よろしくお願い申し上げます。
同じです。左のほうが新しい書き方です。
新しいということは、IEの古いのに対応してなかったりしますか?それともほとんどのブラウザで利用可能ですか?後者の方が巷では記載されているようですが、前者が使われてない理由ってあるんでしょうか?
あー間違った。前者が使われてない理由ってあるんでしょうか?
いやいや、間違ってない、前者が使われてない理由ってあるんでしょうか〜?
obj.hoge(); ができるか、できないか。(後者はできる。前者はできない。)
ごめん。どっちもできたわ。
出来ますよね〜。意外と盲点だと思うんですココ。
お客様の中に明確に答えられる勇者はいらっしゃいませんか?
へえしらんかった。勉強になったありがとう。var obj = { hoge(){} };は Shorthand method definition(日本語だとたぶん「略記メソッド定義」とかになると思う。詳しくは自分で調べろ)ECMAScript 2015にて導入。つまり略した表記方法だということ。ただし、互換性が気になる。それと、、-注意点としては、1)略記メソッド定義はnamed functionとなるが、hoge: function() {...の書き方だと無名関数扱いとなる。2)略記メソッド定義はコンストラクタとしては使えない。3)ジェネレーターメソッドのアステリスク(*)の表記位置が異なる。-この手のオブジェクトの使い方は、だいたい、オブジェクト内にメソッドとか変数を列記する形でしか使わないんだけど、個人的には見やすい方を使う。略記の方が好みだけど何かいい方法ないですかねえ。
トピです。なるほど、これですね!ES2015で導入されたやつだったんですね。勉強になりましたmm
みんなの回答 4 件
同じです。左のほうが新しい書き方です。
obj.hoge(); ができるか、できないか。(後者はできる。前者はできない。)
お客様の中に明確に答えられる勇者はいらっしゃいませんか?
へえしらんかった。勉強になったありがとう。
var obj = { hoge(){} };は Shorthand method definition(日本語だとたぶん「略記メソッド定義」とかになると思う。詳しくは自分で調べろ)ECMAScript 2015にて導入。つまり略した表記方法だということ。ただし、互換性が気になる。それと、、
-
注意点としては、1)略記メソッド定義はnamed functionとなるが、hoge: function() {...の書き方だと無名関数扱いとなる。2)略記メソッド定義はコンストラクタとしては使えない。3)ジェネレーターメソッドのアステリスク(*)の表記位置が異なる。
-
この手のオブジェクトの使い方は、だいたい、オブジェクト内にメソッドとか変数を列記する形でしか使わないんだけど、個人的には見やすい方を使う。略記の方が好みだけど何かいい方法ないですかねえ。
Method definitions - JavaScript | MDN
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions関連するトピックス