构造函数的问题和prototype原型对象

 prototype是一个原型对象

    JavaScript规定中,每一个构造函数都有一个prototype属性,指向另一个对象,注意:这个prototype就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有

原型时什么?

    答:原型时一个对象,我们也称为prototype为原型对象

原型的主要最用时什么?

    答:共享方法

1.一般情况下,我们的公共属性定义到构造函数里面,

  • 构造函数中,不要直接写方法。只能写属性,将方法写在原型对象中。

 2.公共的方法我们放到原型对象身上;(prototype)

  • 我们可以把那些不变的方法,直接定义在prototype对象上,这样所有对象的实例就可以共享这些方法
    <script>
        function Star(uname,age){
          this.uname = uname;
          this.age = age;
        //   this.sing = function(){
        //     console.log('我会唱歌');
        //   }
        }
        //把方法写在原型需对象上面 prototype时原型对象  sing时方法
        Star.prototype.sing = function(){
            console.log('我会唱歌');
        }
        //实例成员只能通过实例化的对象来访问
        var ldh = new Star('刘德华',18);
        var zxy = new Star('张学友',20);
        console.log(ldh.sing===zxy.sing);  //此时就等于true了
        // console.log(ldh ===zxy);//等与false不相等 
        //这样的话就可以调用sing方法了,实现了方法的共享
        ldh.sing();//我会唱歌
        zxy.sing();//我会唱歌
    
      </script>

    运行结果:

  •  

おすすめ

転載: blog.csdn.net/m0_60585777/article/details/121390681
おすすめ