在JavaScript中this对象上下文作用域
2016-11-11 00:00
423 查看
1:在函数调用模式中,例如:
function ninja(){};
ninja();
var samurai = function() {};
samurai();
这个函数的this作用域全局上下文即Windows对象
2:在方法调用模式中,例如:
var o = {};
o.whatever = function () {};
o.whatever();
这个函数的this作用域的上下文就是这个对象
3:在构造器调用模式中,例如:(注意:构造函数首字母大写)
function Ninja(){
this.skulk = function(){ return this;}
}
var ninja1 = new Ninja();
var ninja2 = new Ninja();
assert(ninja1.skulk() === ninja1, "The 1st ninja is skulking");
assert(ninja2.skulk() === ninja2, "The 2nd ninja is skulking");
this作用域的上下文就是为创建的新对象
4:apply/call调用模式中,例如:
function forEach(list, callback){
for (var n = 0; n < list.length; n++){
callback.call(list
, n);
}
}
var list = ['shuriken', 'katana', 'nunchucks'];
forEach(list,function(index){
console.log(index);
console.log(this);
assert(this == list[index], "Got the expected value of “+ list[index]);
})
this作用域的上下文可以是我们指定的任何对象
function ninja(){};
ninja();
var samurai = function() {};
samurai();
这个函数的this作用域全局上下文即Windows对象
2:在方法调用模式中,例如:
var o = {};
o.whatever = function () {};
o.whatever();
这个函数的this作用域的上下文就是这个对象
3:在构造器调用模式中,例如:(注意:构造函数首字母大写)
function Ninja(){
this.skulk = function(){ return this;}
}
var ninja1 = new Ninja();
var ninja2 = new Ninja();
assert(ninja1.skulk() === ninja1, "The 1st ninja is skulking");
assert(ninja2.skulk() === ninja2, "The 2nd ninja is skulking");
this作用域的上下文就是为创建的新对象
4:apply/call调用模式中,例如:
function forEach(list, callback){
for (var n = 0; n < list.length; n++){
callback.call(list
, n);
}
}
var list = ['shuriken', 'katana', 'nunchucks'];
forEach(list,function(index){
console.log(index);
console.log(this);
assert(this == list[index], "Got the expected value of “+ list[index]);
})
this作用域的上下文可以是我们指定的任何对象
相关文章推荐
- JavaScript核心:对象 原型链 构造函数 执行上下文栈 执行上下文 变量对象 活动对象 作用域链 闭包 This 总结
- JavaScript作用域、上下文环境、函数对象的定义与调用、匿名函数的定义与调用、闭包
- JavaScript 上下文对象 (this)
- JavaScript作用域、上下文环境、函数对象的定义与调用、匿名函数的定义与调用、闭包
- JavaScript 面向对象之二 —— 函数上下文(this的指向)
- javaScript 上下文this 对象
- 学习笔记---Javascript原型对象、this的5钟用法、原型继承、Caller和Callee的使用
- 学习JavaScript 的必备 (一),让您对js的 function, javascript内置对象,this概念及之间的关系不再迷惑。(希望能置为推荐篇,为更多的js初学者关注)
- 对js的 function.javascript内置对象,this概念及之间的关系不再迷惑
- js的 function, javascript内置对象,this概念及之间的关系不再迷惑。
- javascript this 和执行上下文 之大不同
- 让您对js的 function, javascript内置对象,this概念及之间的关系不再迷惑
- javascript中不同方式的嵌套函数中 this指针指向的对象的不同(高手就不用进了,因为我也是菜鸟)
- javascript面向对象基础——作用域、闭包、模拟私有属性
- (funciton(){})() 的意义 =====JS函数和对象的意义 ========深入认识JavaScript中的this指针
- JavaScript call apply使用——JavaScript对象的方法绑定到DOM事件后this指向问题
- javascript 为对象绑定方法和作用域
- 对JavaScript中全局对象和作用域的一点点理解
- 让您对js的 function, javascript内置对象,this概念及之间的关系不再迷惑
- 学习JavaScript 的必备 (一),让您对js的 function, javascript内置对象,this概念及之间的关系不再迷惑