検索

ホームページ  >  に質問  >  本文

javascript - js には実際の空のオブジェクトがないのはなぜですか?

js では、オブジェクト リテラル メソッドを使用してオブジェクトを作成します (var obj={}; Object コンストラクターが呼び出されないのに、なぜインスタンスのままなのでしょうか?そのようなオブジェクトは空のオブジェクトであるべきではないでしょうか?そのプロトタイプが Object.prototype であるのはなぜですか?

世界只因有你世界只因有你2788日前573

全員に返信(4)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:26:47

    var obj = {}; は var obj = Object.create({});

    と同等の単なる省略表現です。

    Object.create(null); は空のオブジェクトである可能性があります。

    返事
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:26:47

    1. これについて質問する必要がありますBrendan Eich

    2. まずはあなたの定義を教えてください空对象と思います。

    3. タイトルの説明によると、空对象应该是指最原始的那个对象原型吧?这个东西是有的,它是null の意味は元のオブジェクトのプロトタイプを指すはずですよね?これは存在しますが、null であり、すべてのオブジェクトのプロトタイプ チェーンの終わりです。

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:26:47

    js には空のオブジェクトがあります

    リーリー

    真実を検証するための唯一の基準は実践です

    返事
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:26:47

    概念的に言えば、オブジェクトはすべてのオブジェクトのルート オブジェクトとして定義され、「オブジェクト指向」の概念の最も基本的な単位 (参照) です。これが削除されると、概念全体が崩壊します。分子/原子?

    new で作成してもリテラルを使用しても、コンパイラーはオブジェクトの祖先を自動的に認識します

    そう、null 例外です。これ自体が特殊なケースです。js は最初はオブジェクトとして扱いますが、その後の Object.create(null) でいわゆる「空のオブジェクト」現象が発生します。最初に定義されているのが特別な値である場合、Object.create(null) などというものは存在しません。したがって、私の理解では、この「空のオブジェクト」は自己一貫性があり、定義において接続されており、「オブジェクト」として分類されるべきではありません。をコンセプトに

    返事
    0
  • キャンセル返事