{场景1 }这个全局环境中的这个点指向全局对象


这个= 10;
警报(一); / / 10
b=20;
警报(此);20
var=30;
警报(这个C);30


{场景2 }对象的内部函数的这一点指向调用函数的当前对象。


var a=10;
var bar = {
甲:20,
测试:函数(){
警报(此);
}
}
Bar.test(); / / 20


{场景3 }全局环境函数指向全局对象


var a=10;
函数(){
警报(此);
}
();10


{场景4 }这个匿名函数中的这个点指向全局对象


var a=10;
var { { { {
甲:20,
FN:(函数(){())
警报(此);
})
}
10


{ 5 }的场景在setInterval和setTimeout计时器指向全局对象


var a=10;
Var oTimer1 = setInterval (function ()) {
var a=20;
警报(此);10
ClearInterval(otimer1);
},100);


{ 6 }这情景在eval指向这个调用上下文中


(函数(){())
eval(警报(本)); / / {对象窗口}
});
函数(){
this.bar =函数(){
eval(警报(本)); / / {物}
}
}
新富();
foo.bar();


{场景7 }构造函数中的这个点指向构造的一个新对象


功能人(姓名,年龄){
this.name =名称;
this.age =年龄;
this.sayname =函数(){
警报(这个名字);
}
}
VaR P1 =新的人('lily,20');
p1.sayname(); / / 'lily


{场景8 }新函数中的这个点指向全局对象


(函数(){())
var =新函数(警报(这个));
f();对象窗口}
});
函数(){
this.bar =函数(){
var =新函数(警报(这个));
f();对象窗口}
}
}
新富();
foo.bar();


{场景9 }这个应用程序和调用点指向参数中的对象


var a=10;
var { { { {
甲:20,
函数(){
警报(此);
}
};
var bar = {
答:30
}
Foo.fn.apply(); / / 10(如果参数为空,点默认的全局对象)
foo.fn.apply(Foo); / / 20
foo.fn.apply(酒吧); / / 30


{复合场景1 }


var某人{ {
姓名:鲍勃
showName:函数(){
警报(这个名字);
}
};
var
姓名:汤姆
someone.showname showName:
}
other.showname(); / /汤姆

上面的函数相当于

var
姓名:汤姆
showName:函数(){
警报(这个名字);
}
}
other.showname(); / /汤姆


{复合场景2 }


var名称= 2;
var = {
姓名:3,
FN:(函数(){())
警报(这个名字);
}),
FN1:函数(){
警报(这个名字);
}
}
a.fn;这在 / / 2 {匿名函数指向全局对象}
a.fn1();这对 / / 3 {对象点的内部函数的函数调用当前对象}




{复合场景3 }


var;
无功nameobj = {
姓名:汤姆
showName:函数(){
警报(这个名字);
},
WaitShowName:函数(){
var =;
setTimeout(){()函数(
that.showname();
},1000);
}
};
nameobj.waitshowname(汤姆); / / { =这做出这样的改变,从全局变量的点来改变nameobj }

var;
无功nameobj = {
姓名:汤姆
showName:函数(){
警报(这个名字);
},
WaitShowName:函数(){
var = / /本;指nameobj
setTimeout(){()函数(
(函数(){())
警报(这个名字);
});
},1000);
}
};
nameobj.waitshowname(鲍勃{); / /这形成一个匿名函数,全局变量。


本文介绍了9个应用场景,希望对您有所帮助。我们的网站每天更新新内容。请继续关注本网站。谢谢您.