検索

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

javascript - 初心者の方、プロトタイプの展開について基本的な質問をさせてください。アドバイスをいただけますか?

1. コードの 3 行目が理解できません。
3 行目を実装する必要があり、プロトタイプ オブジェクトとして datasuper_robot に追加します。
なぜ SuperRobot.__proto__=data;
ではなく、 say.__proto__=data; ??
2.

ではないのでしょうか。 リーリー
黄舟黄舟2799日前527

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

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 11:00:53

    リーリー

    現時点で追加すべき人super等于什么?
    是不是等于Fun内声明的a?
    所以__proto_

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 11:00:53

    このように書くことは、super_robot のプロトタイプチェーンを書き換えることに相当し、本来は super_robot.__proto__ が Function.prototype を指していたと言えます。書き換えると、super_robot は実際の関数とみなされなくなり、call、apply、bind などの Function プロトタイプのメソッドを使用できなくなります。 リーリー

    これを拡張する場合は、say.__proto__.name = name、say.__proto__.age = age と書く必要があります。これは Function.prototype.name = name、Function.prototype.age = age と同等ですが、これによりすべてが作成されます。関数インスタンスは 2 つの属性にアクセスできるため、通常はこのように展開することはお勧めできません

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 11:00:53

    SuperRobot は単なるファクトリー関数であり、それが返すものがコアです

    返事
    0
  • キャンセル返事