【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对象
![](http://s2.sinaimg.cn/mw690/6aaf309fgcd01c5694c31&690)
this.name="",所以结果就是对象
--------------------------------------------------------------
var zhao={name:"my name"};
zhao.say=a;//把a()最为zhao的方法,则是第二种情况,this指zhao这个对象
zhao.say();
a.call(zhao);//call强制改变a中的this为zhao这个对象
![](http://s10.sinaimg.cn/mw690/6aaf309fgcd01c75f6df9&690)
--------------------------------------------------------------
a.a=a;//把函数a()当作其自身方法
a.name="my name ";
a.a();//情况2,this指调用函数a()的对象,这里就是函数a本身
![](http://s6.sinaimg.cn/mw690/6aaf309fg7ae6943093c5&690)
注意这里的结果
--------------------------------------------------------------
({
name:"zhao",
a:a
}).a();//匿名函数直接调用自身方法a,this指向这个匿名函数
![](http://s16.sinaimg.cn/mw690/6aaf309fgcd01cb960edf&690)
当函数被直接调用时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指向这个匿名函数
相关文章推荐
- 深入理解javascript原型和闭包(10)——this
- javascript有关this的
- javascript利用闭包this实现继承
- JavaScript知识点总结(十)之this关键字
- 丁小柒javascript进阶-this与作用域
- href="javascript:xxx(this);"和onclick="javascript:xxx(this);"的区别
- Javascript中 this的精要总结
- javascript中改变this的指向
- 图文解说 JavaScript this 到底指向什么?
- JavaScript ECMA-262-3 深入解析.第三章.this
- javascript中onclick(this)
- Javascript中this绑定的3种方法与比较
- 对javascript this的理解
- javascript之this指针
- 图文解说 JavaScript this 到底指向什么?
- javaScript中的this作用域
- javascript 中的this 与事件注册 及event
- Javascript 作用域链 活动对象 执行环境 与 this 的纠结 总结~
- 深入理解JavaScript系列(13):This? Yes,this!
- 5分钟理解JavaScript中this用法分享