美文网首页
prototype和__proto__

prototype和__proto__

作者: _Enco_ | 来源:发表于2017-07-17 15:05 被阅读0次

    prototype两种使用方法

    Date.prototype={
      tool1:function(){},
      tool2:function(){}
    }
    
    Date.prototype.tool1 = function(){};
    Date.prototype.tool2 = function(){};
    

    prototype和proto

    function FN(name){
      this.name = name;
    }
    FN.prototype.getname = function(){
      console.log(this.name);
    }
    f2.__proto__.getAge = function(){
      console.log(666);
    }
    f2.tool = function(){alert(666);}
    var f1 =new FN("xxxx");
    f1.tool(); //f1没有tool方法
    console.log(f1); //f1下的__proto__下也有getAge
    var f2 =new FN("karen");
    console.log(f2.__proto__);
    
    • 对象的原型属性(proto)指向构造函数的原型(prototype)
    • Es6中,由于类的方法都定义在prototype对象上面,所以类的新方法可以添加在prototype对象上面。
    class B {}
    let b = new B();
    b.constructor === B.prototype.constructor // true
    
    • 上面代码中,b是B类的实例,它的constructor方法就是B类原型的constructor方法。
    class Point {
      constructor() {
        // ...
      }
      toString() {
        // ...
      }
       toValue() {
        // ...
      }
    }
    // 等同于
    Point.prototype = {
      constructor() {},
      toString() {},
      toValue() {},
    };
    

    相关文章

      网友评论

          本文标题:prototype和__proto__

          本文链接:https://www.haomeiwen.com/subject/aoofkxtx.html