美文网首页
十三(11)、原型链方法中的this问题 ------ 2020

十三(11)、原型链方法中的this问题 ------ 2020

作者: 自己写了自己看 | 来源:发表于2020-04-06 09:29 被阅读0次

    1、原型链方法中的this判定三步骤:

    /**
    * 1、方法执行,看方法前面是否有点,点前面是谁,this就是谁;
    * 2、把方法前面总的this进行替换;
    * 3、再基于原型链查找的方法,确定结果即可;
    */
    function Fn() {
        this.x = 100;
        this.y = 200;
        this.say = function () {
           console.log(this.x); 
       }
    }
    
    Fn.prototype.say = function () {
        console.log(this.y);
    }
    
    Fn.prototype.eat = function () {
       console.log(this.x + this.y);
    }
    
    let f1 = new Fn;
    
    f1.say(); // this => f1; 100
    
    f1.eat(); // 300
    
    // 基于原型链先查找 eat 方法,但是点前面是谁,方法中的
    // this就是谁,this => f1;
    
    f1._proto_.say(); // this => f1._proto_ undefined
    
    Fn.prototype.eat(); // this => Fn.prototype undefined
    
    

    相关文章

      网友评论

          本文标题:十三(11)、原型链方法中的this问题 ------ 2020

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