this的使用
2016-04-11 18:55
477 查看
1.call
var obj={name:"4"};
var fn1=function(){console.log(this)};
function fn2(){console.log(this)};
fn1.call(obj)
=>Object {name: "4"}
fn2.call(obj)
=>Object {name: "4"}
2.
var myObject = {
na:"bar",
func: function() {
var self = this;
console.log(" " + this.na);
(function (){
console.log("inner func: this.na= " + this.na);
console.log("inner func: self.na= " + self.na);
}());
}
};
na="window na";
myObject.func();
=> bar
=> inner func: this.na= window na
=> inner func: self.na= bar
-------------------------------------------
var o={
m:function(){
var that=this;
console.log(that);
a();
function a(){
console.log(this)
}
}
}
o.m();
=>Object {}
=>Window {external: Object, chrome: Object, document: document, user_data: Object, is_option: false…}
this上下文只存在两种语义:
一种是被当作方法调用,this指向调用它的对象,(比如上面的that);一种是作为函数调用,指向Global对象,它没有作用域的限制,a由于是作为函数被调用,所以它指向window。
var obj={name:"4"};
var fn1=function(){console.log(this)};
function fn2(){console.log(this)};
fn1.call(obj)
=>Object {name: "4"}
fn2.call(obj)
=>Object {name: "4"}
2.
var myObject = {
na:"bar",
func: function() {
var self = this;
console.log(" " + this.na);
(function (){
console.log("inner func: this.na= " + this.na);
console.log("inner func: self.na= " + self.na);
}());
}
};
na="window na";
myObject.func();
=> bar
=> inner func: this.na= window na
=> inner func: self.na= bar
-------------------------------------------
var o={
m:function(){
var that=this;
console.log(that);
a();
function a(){
console.log(this)
}
}
}
o.m();
=>Object {}
=>Window {external: Object, chrome: Object, document: document, user_data: Object, is_option: false…}
this上下文只存在两种语义:
一种是被当作方法调用,this指向调用它的对象,(比如上面的that);一种是作为函数调用,指向Global对象,它没有作用域的限制,a由于是作为函数被调用,所以它指向window。
相关文章推荐
- securityManager
- ZOJ 3593.One Person Game【扩展欧几里得+逼近】【4月11】
- 10个带源码的充满活力的Web设计教程
- ListActivity和SimpleAdapter
- 利用excel生成sql插入语句
- 数据库设计 Step by Step (5)——理解用户需求
- 3.用户数据报(UDP):进程到进程的通信
- 2016华为软件精英挑战赛:低级案例---暴力出奇迹(一)
- 华为机试题ex009
- shiro入门
- Oracle 数据库SQL语句优化方法
- CSS3 伪类选择器 nth-child() 的用法
- selector选择器
- javaScript获取浏览器窗口可视区域大小
- Problem A: 判断操作是否合法(栈和队列)
- C#-基础部分思维导图
- 数据七天自动备份脚本
- classloader2
- flex学习进度6之creationComplete分派
- inline函数