関数を使用してオブジェクトを作成したいObject.create
(プロトタイプなし、最初の引数をnullとして)。
プロパティがJavaScriptのオブジェクトの状態を決定し、JavaScriptには3種類のプロパティがあることをどこかで読みました。
- 名前付きデータのプロパティ
- 名前付きアクセサプロパティ
- 内部プロパティ
したがって、オブジェクトで関数を定義するときは、常にそれをnamed accessor property
:として定義する必要があります。
var obj = Object.create(null, {
a:{
get:function(){
alert('jQuery nyan!');
}
}
});
または、関数がaでもaでもnamed data property
ない場合に、関数をaとして定義する必要がありますか?[たとえば、DOMobjに変更を加えるいくつかのjQuery関数] setter
getter
var obj = Object.create(null, {
a:{
value:function(){
alert('jQuery nyan!');
}
}
});
どのアプローチを取るべきですか?パフォーマンス(速度)とメモリ管理の点で、違いはありますか?どちらも例外なく機能しているようです。
obj.a;
//output: 'jQuery nyan!'