[解決済み】new Object()`とオブジェクトリテラル記法の違いは何ですか?
2022-04-07 04:35:30
質問
このコンストラクターによるオブジェクト生成の構文の違いは何ですか。
person = new Object()
...そして、このリテラル構文。
person = {
property1 : "Hello"
};
どちらも同じことをするように見えますが、JSLintはオブジェクトリテラル表記を使うことを好んでいます。
どちらが良いのでしょうか?
解決方法は?
どちらも同じことをするのですが(誰かが何か特別なことをしない限り)、2番目のものはオブジェクトを作成します。
と
はそれにプロパティを追加します。しかし、リテラル記法はソースコードに占めるスペースが少ない。 何が起こっているのかが明確に認識できるので、以下のように使用します。
new Object()
ということは、単に入力が増えただけで、(理論的には、JavaScriptエンジンが最適化しなければ)不必要な関数呼び出しを行っていることになります。
これら
person = new Object() /*You should put a semicolon here too.
It's not required, but it is good practice.*/
-or-
person = {
property1 : "Hello"
};
は技術的に同じことをするわけではありません。 最初のものは単にオブジェクトを作成するだけです。 もうひとつはオブジェクトを作成し、プロパティを設定するものです。 最初のステップを同じにするには、2番目のステップでプロパティを作成し割り当てる必要があります。
何か変わったこと"誰かができることは、シャドウまたはデフォルトの
Object
のグローバル化です。
// Don't do this
Object = 23;
その中で
極めて異例
の場合
new Object
は失敗しますが
{}
は動作します。
実際のところ、このような理由で
new Object
よりも
{}
(そのような非常に珍しいことをしていない限り)。
関連
-
[解決済み】event.stopPropagationとevent.preventDefaultの違いは何ですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] varキーワードの目的と、どのような場合に使用する(または省略する)べきですか?
-
[解決済み] JavaScriptで配列の長さを初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】webpack: モジュールが見つかりません。Error: 解決できない(相対パスで)
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み] テスト
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】SyntaxError: 期待された式が、'<'を得た。