this指向
2016-02-28 21:12
246 查看
var o = {
a:10,
b:{
//
a:12,
fn:function(){
console.log(this.a); //undefined
}
}
}
o.b.fn();
尽管对象b中没有属性a,这个this指向的也是对象b,因为this只会指向它的上一级对象,不管这个对象中有没有this要的东西。
还有一种比较特殊的情况,例子4:
var o = {
a:10,
b:{
a:12,
fn:function(){
console.log(this.a); //undefined
console.log(this); //window
}
}
}
var j = o.b.fn;
j();
这里this指向的是window,是不是有些蒙了?其实是因为你没有理解一句话,这句话同样至关重要。
this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的,例子4中虽然函数fn是被对象b所引用,但是在将fn赋值给变量j的时候并没有执行所以最终指向的是window,这和例子3是不一样的,例子3是直接执行了fn。
a:10,
b:{
//
a:12,
fn:function(){
console.log(this.a); //undefined
}
}
}
o.b.fn();
尽管对象b中没有属性a,这个this指向的也是对象b,因为this只会指向它的上一级对象,不管这个对象中有没有this要的东西。
还有一种比较特殊的情况,例子4:
var o = {
a:10,
b:{
a:12,
fn:function(){
console.log(this.a); //undefined
console.log(this); //window
}
}
}
var j = o.b.fn;
j();
这里this指向的是window,是不是有些蒙了?其实是因为你没有理解一句话,这句话同样至关重要。
this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的,例子4中虽然函数fn是被对象b所引用,但是在将fn赋值给变量j的时候并没有执行所以最终指向的是window,这和例子3是不一样的,例子3是直接执行了fn。
相关文章推荐
- 概率图模型基础
- Java 学习笔记 ------第三章 基础语法
- JavaScript 垃圾回收
- iframe跳转其他页面
- 确定集合S中与S中位数最接近的k个数
- rem,em,px的区别
- iOS CAEmitterLayer 实现粒子效果
- const限定符
- Jquery中关于动画的一些操作函数
- php\symfony3 学习记录(三) 路由和控制器
- 结束Thread
- 移植LAMP服务器到嵌入式平台
- Linux挂载点和文件系统类型介绍
- Ubuntu配置sublime text 3的c编译环境
- Zookeeper未授权访问
- Java泛型
- 选择排序--递归实现
- 模板类的实现语法
- LeetCode:Majority Element
- C++学习笔记:函数指针语法基础以及函数指针做函数参数的思想剖析