>  Q&A  >  본문

关于propotype的问题

var a=new Object(){ a.x=1; a.prototype.y=2;} var b = Object.create(a) 假如这样的话。B的原型指向a,a的原型里面有x这个值,那么a的x继承给了b很正常,问题来了,b有没有继承到y这个值?

小水滴小水滴2828일 전1280

모든 응답(2)나는 대답할 것이다

  • 数据分析师

    数据分析师2017-09-30 23:56:36

    프로토타입에 대한 질문-PHP 중국어 사이트 Q&A-프로토타입에 대한 질문-PHP 중국어 사이트 Q&A

    보시고 배워보세요.

    회신하다
    0
  • 怪我咯

    怪我咯2017-01-23 11:45:11

    第一、prototype是一个构造函数的属性,不是一个对象实例的属性,所以,你这a.prototype.y=2;这句话是不对的,因为实例a没有prototype属性,按你的目的,应该这样写:Object.prototype.y=2;这样的话,a的原型中就有y属性了,且值为2。又因为a是b的原型,所以b从原型链上继承了y属性,即b.y的值为2。

    代码

    <!DOCTYPE html>
    <html>
    <head>
    <title>this is a title</title>
    </head>
    <body>
    <script>
    var a =new Object();
    a.x=1;
    Object.prototype.y=2 //写成 a.prototype.y=2是不对的!!!
    var b= Object.create(a);
    console.log(a.y);  //2
    console.log(b.y);  //2
    </script>
    </body>
    </html>


    회신하다
    0
  • 취소회신하다