2

なぜ宣言する必要があるのか

var foo = {}

それ以外の

var foo = new Object();

それらが類似している場合、JavaScriptで?同じことが当てはまりますか

foo[0].bar = new Function(){ "return hello"};

のように

foo[0].bar = function(){return "hello"};

? 効率の問題ですか?違いはありますか?

4

5 に答える 5

2

w3fools.comから以下を読んだことを覚えています。

personObj=new Object();

これはnewキーワードの不適切で不必要な使用です。{}新しいオブジェクトを作成するために、オブジェクト リテラル構文 ( ) を使用し、推奨する必要があります。

理由は述べられていません。

于 2012-07-21T00:00:56.733 に答える
2

実際

var foo = {}

var foo = new Object();

は同じことを行います (両方の式が空の を作成しますObject) が、短いバージョン ( ) を使用することをお勧めします。object literal書き込みに必要なスペース時間が少なくて済みます。object literalObject

person = {
    property1 : "Hello"
};

ただし、new Object()最初に作成してから、次のように値/プロパティを割り当てる必要があります

person = new Object();
person.property1 = "Hello";

2 番目の例 ( function vs new function) には違いがあるためnew Functionここでこのテストslowerを確認できます。

于 2012-07-21T00:06:09.413 に答える
0

コンストラクタは実際にはそのnew Function()ようには機能しません。

それは次のように呼ばれます:

var myFunc = new Function("param1", "param2", "message", "/*function-body-as-a-string*/ console.log(message); return param1 + \"=\" + param2;");

つまり、本当に愚かで、エラーが発生しやすく、愚かで遅く (eval を使用)、セキュリティ ホールです。使用しないでください。

于 2012-07-21T00:17:05.877 に答える
0

いいえ、効率の増減はありません。: if/else..

私は常に省略形の {} を使用しますが、初心者にコードを読んでもらう場合は、new Object() を使用することをお勧めします。

于 2012-07-20T23:59:20.290 に答える
0

唯一問題になるのは、そのような JavaScript を動的に生成するプログラムを作成する場合、または大学の特定の教師に向けて作成する場合です。

于 2012-07-21T00:01:16.633 に答える