构造函数中的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(“我是个方法”); }
上一篇:
通过多线程提高代码的执行效率例子