快捷搜索: 王者荣耀 脱发

构造函数中的THIS究竟是什么?什么叫做实例?

这两天的构造函数给我搞蒙掉咯

构造函数:

<script>

function Gouzao(shuju){ //构造一个函数名叫gouzao 这个GOUZAO就是这个案例中的构造函数本人了
    this.eye="大眼睛";

   this.shuju=shuju;//这个就是通过括号传入的数据,也可以传函数 this指向实例(因为实例在最后调用了这个数据)

   this.fangfa=quanjufangfa; //把全局中的函数赋给实例中的方法
}

var quanjufangfa=function(){ //这是一个定义在全局的方法 一开始和构造函数没关系 后面被当作数值传入实例中

alert("这个quanjufangfa可以定义成任何数据,传入this.fangfa中");//弹出框

};

Gouzao.prototype.gouzaofangfa=function(){//在构造函数gouzao的prototype对象中添加一个方法fangfa为函数
    alert("我是通过点语法在GOUZAO的原型prototype上创造的方法gouzaofangfa");
}

var shili = new Gouzao("这里的值就是shuju的值"); //注意 这里的shili就是实例 是一个对象 括号内的值就是shuju的值

shili.fangfa();//通过实例调用被This.fangfa加入进实例的方法fangfa();

shili.gouzaofangfa();//调用原型中的方法gozaofangfa

alert(shili.shuju); //调用数据

console.log(shili.eye);

//这里就调用gouzao这个构造函数的自带原型prototype中添加的 fangfa 方法
    
    </script>

没错我用了很土的命名法 但是我还是适合这种不然真搞不懂 遵循this 谁调用就指向谁的原则,这个构造函数中的this就是指向shili,因为它被shili调用了 **

var shili = new Gouzao(“这里的值就是shuju的值”); 中shili就是实例

实例就是个对象,可以通过prototype添加方法

构造函数中的THIS全指向实例

,也就是说所有this.###的东西都是给实例添加方法 this.eye=“大眼睛”;

实例.eye的数据就是“大眼睛”

this.food=function(){ console.log(“我是个方法”); }

就等于

实例.food=function(){ console.log(“我是个方法”); }

经验分享 程序员 微信小程序 职场和发展