学习一下this

到处查了后,有这么一句话

this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁

实际上this的最终指向的是那个调用它的对象

案例:

var a={

  name:"王五",

  age:18,

  say:function(){

    console.log("我为自己代言,我是"+this.name);

  }

}

a.say()

//     我为自己代言,我是王五

对象a调用了this所在的方法say,this指向a

 

var b={"name":"小三"}

b.say = a.say;//赋值

b.say();

//     我为自己代言,我是小三

this指向了对象b

===============================================================================

再变一下

var name = "window";

var d = function(){

  console.log("我为自己代言,我是"+this.name);

}

a.say = d;

b.say = d;

a.say();

b.say();

d();//d是window下的方法,window.d()  ,结果是window

==============

如果一个函数在全局环境中运行,那么this就是指顶层对象(浏览器中为window对象)。

===这是一般的简单使用

、、

构造函数中的this,指的是实例对象。

 

posted @ 2017-10-12 11:07  -xgaox-  阅读(78)  评论(0)    收藏  举报