标签:
this对象是指向函数的运行环境。
var name = ‘window‘;
var obj = {
name:‘obj‘,
sayName:function(){
console.log(this.name);
}
};
obj.sayName();//obj
在全局函数(其实就是window的方法)中this等于window.
var name = ‘window‘;
function a (){ console.log(this.name); } a();//window
局部变量引用的函数
var name = "window"; var Bob = { name: "Bob", showName: function(){ alert(this.name); } }; var Tom = { name: "Tom", showName: function(){ var fun = Bob.showName; fun(); } }; Tom.showName(); //window
该函数执行时的作用域是当前作用域,即等同于在该行将里面的代码填进去。
new关键字后的构造函数中的this指向用该构造函数构造出来的新对象。
apply和call是唯一能改变函数的this指向的函数
在使用attachEvent()方法时,事件处理程序会在全局作用域中运行,this等于window。
var btn = document.getElementById(‘myBtn‘); btn.attachEvent(‘onclick‘,function(){ console.log(this === window);//true });
var name = ‘window‘; var obj = { name:‘obj‘, getFn:function(){ var that = this; return function(){ return that.name + this; } } }; //该函数的this还是指向window console.log(obj.getFn()());// obj[object Window]
标签:
原文地址:http://www.cnblogs.com/xinup/p/4771331.html