js面接問題------対象クラス向け

8374 ワード

コードは次のとおりです.

      <span style="color:#008000;">/*</span><span style="color:#008000;">*
       *  
       </span><span style="color:#008000;">*/</span>
      <span style="color:#0000ff;">var</span> Animal = <span style="color:#0000ff;">function</span><span style="color:#000000;"> () {
          </span><span style="color:#0000ff;">this</span>.name = 'Animal'<span style="color:#000000;">;
      };

      </span><span style="color:#008000;">/*</span><span style="color:#008000;">*
       * es6 class 
       </span><span style="color:#008000;">*/</span><span style="color:#000000;">
      class Animal2 {
          constructor () {
              </span><span style="color:#0000ff;">this</span>.name = 'Animal2'<span style="color:#000000;">;
          }
      }

      </span><span style="color:#008000;">/*</span><span style="color:#008000;">*
       *  
       </span><span style="color:#008000;">*/</span><span style="color:#000000;">
      console.log(</span><span style="color:#0000ff;">new</span> Animal(), <span style="color:#0000ff;">new</span><span style="color:#000000;"> Animal2());

      </span><span style="color:#008000;">/*</span><span style="color:#008000;">*
       *  
       </span><span style="color:#008000;">*/</span>
      <span style="color:#0000ff;">function</span><span style="color:#000000;"> Parent1 () {
          </span><span style="color:#0000ff;">this</span>.name = 'parent1'<span style="color:#000000;">;
      }
      Parent1.prototype.say </span>= <span style="color:#0000ff;">function</span><span style="color:#000000;"> () {

      };
      </span><span style="color:#0000ff;">function</span><span style="color:#000000;"> Child1 () {
          Parent1.call(</span><span style="color:#0000ff;">this</span><span style="color:#000000;">);
          </span><span style="color:#0000ff;">this</span>.type = 'child1'<span style="color:#000000;">;
      }
      console.log(</span><span style="color:#0000ff;">new</span> Child1(), <span style="color:#0000ff;">new</span><span style="color:#000000;"> Child1().say());

      </span><span style="color:#008000;">/*</span><span style="color:#008000;">*
       *  
       </span><span style="color:#008000;">*/</span>
      <span style="color:#0000ff;">function</span><span style="color:#000000;"> Parent2 () {
          </span><span style="color:#0000ff;">this</span>.name = 'parent2'<span style="color:#000000;">;
          </span><span style="color:#0000ff;">this</span>.play = [1, 2, 3<span style="color:#000000;">];
      }
      </span><span style="color:#0000ff;">function</span><span style="color:#000000;"> Child2 () {
          </span><span style="color:#0000ff;">this</span>.type = 'child2'<span style="color:#000000;">;
      }
      Child2.prototype </span>= <span style="color:#0000ff;">new</span><span style="color:#000000;"> Parent2();

      </span><span style="color:#0000ff;">var</span> s1 = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Child2();
      </span><span style="color:#0000ff;">var</span> s2 = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Child2();
      console.log(s1.play, s2.play);
      s1.play.push(</span>4<span style="color:#000000;">);

      </span><span style="color:#008000;">/*</span><span style="color:#008000;">*
       *  
       </span><span style="color:#008000;">*/</span>
      <span style="color:#0000ff;">function</span><span style="color:#000000;"> Parent3 () {
          </span><span style="color:#0000ff;">this</span>.name = 'parent3'<span style="color:#000000;">;
          </span><span style="color:#0000ff;">this</span>.play = [1, 2, 3<span style="color:#000000;">];
      }
      </span><span style="color:#0000ff;">function</span><span style="color:#000000;"> Child3 () {
          Parent3.call(</span><span style="color:#0000ff;">this</span><span style="color:#000000;">);
          </span><span style="color:#0000ff;">this</span>.type = 'child3'<span style="color:#000000;">;
      }
      Child3.prototype </span>= <span style="color:#0000ff;">new</span><span style="color:#000000;"> Parent3();
      </span><span style="color:#0000ff;">var</span> s3 = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Child3();
      </span><span style="color:#0000ff;">var</span> s4 = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Child3();
      s3.play.push(</span>4<span style="color:#000000;">);
      console.log(s3.play, s4.play);

      </span><span style="color:#008000;">/*</span><span style="color:#008000;">*
       *  1
       * @type {String}
       </span><span style="color:#008000;">*/</span>
      <span style="color:#0000ff;">function</span><span style="color:#000000;"> Parent4 () {
          </span><span style="color:#0000ff;">this</span>.name = 'parent4'<span style="color:#000000;">;
          </span><span style="color:#0000ff;">this</span>.play = [1, 2, 3<span style="color:#000000;">];
      }
      </span><span style="color:#0000ff;">function</span><span style="color:#000000;"> Child4 () {
          Parent4.call(</span><span style="color:#0000ff;">this</span><span style="color:#000000;">);
          </span><span style="color:#0000ff;">this</span>.type = 'child4'<span style="color:#000000;">;
      }
      Child4.prototype </span>=<span style="color:#000000;"> Parent4.prototype;
      </span><span style="color:#0000ff;">var</span> s5 = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Child4();
      </span><span style="color:#0000ff;">var</span> s6 = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Child4();
      console.log(s5, s6);

      console.log(s5 </span><span style="color:#0000ff;">instanceof</span> Child4, s5 <span style="color:#0000ff;">instanceof</span><span style="color:#000000;"> Parent4);
      console.log(s5.constructor);

      </span><span style="color:#008000;">/*</span><span style="color:#008000;">*
       *  2
       </span><span style="color:#008000;">*/</span>
      <span style="color:#0000ff;">function</span><span style="color:#000000;"> Parent5 () {
          </span><span style="color:#0000ff;">this</span>.name = 'parent5'<span style="color:#000000;">;
          </span><span style="color:#0000ff;">this</span>.play = [1, 2, 3<span style="color:#000000;">];
      }
      </span><span style="color:#0000ff;">function</span><span style="color:#000000;"> Child5 () {
          Parent5.call(</span><span style="color:#0000ff;">this</span><span style="color:#000000;">);
          </span><span style="color:#0000ff;">this</span>.type = 'child5'<span style="color:#000000;">;
      }
      Child5.prototype </span>=<span style="color:#000000;"> Object.create(Parent5.prototype);

    </span>

 
転載先:https://www.cnblogs.com/diasa-fly/p/7510473.html