您的位置:首页 > Web前端 > JavaScript

【javascript】javascript中的this

2014-04-03 14:14 344 查看
其它一些编程语言如C++、Java等,其中的this值得是对象自己,但是JavaScript则不是,可能是自己也可能是其它。

当函数被直接调用时this指向全局对象window;

当函数被当作一个函数方法调用(即通过“.”或者“[]”来调用时),this指向调用该方法的对象。

可以使用call和apply强制改变this。

例:
function a(){
console.log(this.name+typeof(this));
}
--------------------------------------------------------------
a();//这里直接调用a(),则this指window对象




this.name="",所以结果就是对象
--------------------------------------------------------------
var zhao={name:"my name"};
zhao.say=a;//把a()最为zhao的方法,则是第二种情况,this指zhao这个对象
zhao.say();
a.call(zhao);//call强制改变a中的this为zhao这个对象





--------------------------------------------------------------
a.a=a;//把函数a()当作其自身方法
a.name="my name ";
a.a();//情况2,this指调用函数a()的对象,这里就是函数a本身



注意这里的结果

--------------------------------------------------------------
({
name:"zhao",

a:a

}).a();//匿名函数直接调用自身方法a,this指向这个匿名函数


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: