
定义一个对象:
var Charles = {
living: true,
age:23,
gender:male,
getGender:function(){ return Charles.gender;
}
}; console.log(Charles.getGender()); //下面的代码有一样的效果:
var Charles = {
living: true,
age:23,
gender:male,
getGender:function(){ return this.gender; //注意“this” }
}; console.log(Charles.getGender()); //那么,this究竟在代码里指代的是什么?我们该怎么分析,因为在具体的环境里有时很难分清this指代的真面目。那么,现在,需要记住一句话:
当this值的宿主函数被封装在另一个函数里面,或者在另一个函数的上下文中被调用时,this值永远是对全局(head/window)对象的引用。
也就是说,this值在嵌套函数里面,对于ES5永远指向window。
var myObject = {
myProperty: 'I can see the light',
myMethod: function(){ var that = this; console.log(this);
//结合上面的那句话,对于ES5来说,this也就是这个情况:
var myObject = {
func1: function(){ console.log(this); //
如图
到这里,应该明白了this在JS中的位置,相信以后不会再分不清楚了。
