分类分类
更新时间:2026-08-08 19:12:55作者:fang
JavaScript有自己的一套this机制,在不同情况下,this的指向也不尽相同。
全局范围
console.log(this); //全局变量
全局范围使用this指向的是全局变量,浏览器环境下就是window。
注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。
函数调用中
function foo() {
console.log(this);
}
foo(); //全局变量
函数调用中的this也指向全局变量。
注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。
对象方法调用
var test = {
foo: function () {
console.log(this);
}
}
test.foo(); //test对象
对象方法调用中,this指向调用者。
var test = {
foo: function () {
console.log(this);
}
}
var test2 = test.foo;
test2(); //全局变量
不过由于this的晚绑定特性,在上例的情况中this将指向全局变量,相当于直接调用函数。
这点非常重要,同样的代码段,只有在运行时才能确定this指向
构造函数
function Foo() {
console.log(this);
}
new Foo(); //新创建的对象
console.log(foo);
在构造函数内部,this指向新创建的对象。
显式设置this
function foo(a, b) {
console.log(this);
}
var bar = {};
foo.apply(bar, [1, 2]); //bar
foo.call(1, 2); //Number对象
使用Function.prototype的call或者apply方法是,函数内部this会被设置为传入的第一个参数。
相关
星球小队策略游戏316.49 MBv1.15.366.638912026-08-08
下载超市大亨3D经营养成253.14 MBv10.252026-08-08
下载绝世武林角色扮演453.09 MBv1.8.14162026-08-08
下载Crush Crush手机版经营养成124.86 Mv0.4482026-08-08
下载消消大亨经营养成13.56 Mv1.0.02026-08-08
下载endacopia手机版冒险游戏1.43Gv1.0.02026-08-08
下载最强帮主角色扮演143.91 MBv9991.12026-08-08
下载战西游手游折扣版策略游戏13.77 MBv1.02026-08-08
下载富豪物语创业时代官方版经营养成215.01 Mv3.0.12026-08-08
下载咒术回战爱憎乱斗手游动作射击291.7 Mv1.0.02026-08-08
下载三国吧兄弟折扣版策略游戏380.04 MBv1.0.02026-08-08
下载代号97动作射击277.47 Mv1.0.72026-08-08
下载










