検索

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

JavaScript - プロトタイプチェーンに関する質問

リーリー

1.my.toString() が呼び出されるとき、JavaScript エンジンの実行パスは何ですか?

PHP中文网PHP中文网2710日前708

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

  • 滿天的星座

    滿天的星座2017-06-14 10:55:03

    リーリー

    [1]。Triangle インスタンス オブジェクトを作成します。 リーリー

    [2] Triangle インスタンス オブジェクト my でメソッド getArea を呼び出します。

    [3] Triangle インスタンス オブジェクト my でメソッド toString を呼び出し、現在のオブジェクトに存在しないことを確認します。TwoDShape インスタンス オブジェクトへのプロトタイプ チェーンをたどります。まだ存在しない場合は、Shape インスタンスに移動してオブジェクトを探します。
    現時点での this オブジェクトは Triangle インスタンス オブジェクト my で、その name 属性値は Triangle で、出力は

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-14 10:55:03

    1: まず、型とインスタンスの関係を理解し​​てください。Shape は型 (抽象)、varshape = new Shap()、shape はインスタンスです。
    2: 質問が曖昧すぎます。と var sh = Shape() のコンストラクターの関係は何ですか => Shape のコンストラクターは Shape.prototype.constructor; (shape と sh はどのように関係するのでしょうか~)
    3: 直接継承しないのはなぜですか?このようにデザインされました;

    返事
    0
  • 代言

    代言2017-06-14 10:55:03

    すべて分解するとわかります。まず、new の動作ロジックを見てください。TwoDShape.prototype = new Shape(); 3 つのことを実行します。 リーリー

    同じ理由

    リーリー リーリー

    実行時

    my.toString()的时候从my自身成员开始找toString,没有就沿着__proto__往上找,最终在my.__proto__.__proto__(也就是TwoDShape.prototype)里找到了toString

    返事
    0
  • キャンセル返事