JS中为什么object中,this指向window?

JavaScript031

JS中为什么object中,this指向window?,第1张

刚开始学,很容易对javascript中的this搞得晕头转向,因为它指向谁,取决于它所在的地方。

在方法中,this 表示该方法所属的对象。

如果单独使用,this 表示全局对象。

在函数中,this 表示全局对象,在严格模式下,this 是未定义的(undefined)。

在事件中,this 表示接收事件的元素。

类似 call() 和 apply() 方法可以将 this 引用到任何对象。

你这个例子里就属于单独使用,所以这里的this代表的是全局对象,浏览器环境下就说window了。

把你的例子稍微改一下:

var obj = {

a: 20,

b: function(){ return this.a+= 10 }

}

这时候执行 obj.b(),就发现这里的this指向的是obj了,也就算上述的第一条。关于this的指向要多练习,多思考,因为它确实乱糟糟,所以在ES6中出现了箭头函数,缓解了这个噩梦。

form.serializeArray()//取得form里的表单对象,也就是每一个input,select等

$.each是像for一样的循环,按序列获取没一个对象。

each里的this指的当前的ipnut,select等,获取ipnut的name属性值

obj[this['name']] =this['value']最后返回由name和值组合的数组对象。

his是指向当前引用对bai象du

this.name = name

-- 这个好理解,指向User对象,不是zhiUser function

this.my_alert = function() {

alert(this.name)

}

function 一个函dao数,这么理解有zhuan点“问题”,正shu确的说法是my_alert 是一个函数类型变量

my_alert 是User的一个属性,他本身是funtion类型,所以这个function类型中的this指向当前对象

this对象bai是在运行时基于函数的执行du环境绑定的,它可能是全局对象zhi或者其他的某个对象,随着函数的执行环境dao不同,this的值也会不一样。但是总有一个原则,那就是this指的是调用函数的那个对象。

还有另一个原则:当没有明确的调用函数的那个对象时,this指向全局对象global,浏览器模式下就是window了。

JavaScript:this是什么?

定义:this是包含它的函数作为方法被调用时所属的对象。

说明:这句话有点咬嘴,但一个多余的字也没有,bai定义非常准确,我们可以分3部分来理解它!

1、包含它的函数。2、作为方法被调用时。3、所属的对象。

看例子:

function to_green(){

this.style.color="green"

}

to_green()

上面函数中的this指的是谁?

分析:包含this的函数是,to_green

该函数作为方法被调用了

该函数所属的对象是。。?我们知道默认情况下,都是window对象。

OK,this就是指的window对象了,to_green中执行语句也就变为,window.style.color="green"

这让window很上火,因为它并没有style这么个属性,所以该语句也就没什么作用。

想要系统了解来尚学堂,线上线下,系统性教学。