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

在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作用域的上下文可以是我们指定的任何对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  this JavaScript
相关文章推荐