在回调函数中理解'this'

时间:2015-08-17 14:09:18

标签: javascript

我有这段代码

spsimpleamir_tag_id

结果是未定义的,我想知道在这种情况下'this'指的是什么,我该怎么做才能使'this.name'实际上打印一些东西而不是未定义?

1 个答案:

答案 0 :(得分:5)

阅读documentation for Array#filter on MDN以了解this未定义的原因:

  

arr.filter(callback [,thisArg])

     

如果提供了thisArg参数进行过滤,则会在调用时将其传递给回调,以用作此值。否则,将传递未定义的值以用作其此值。最终通过回调可观察到的这个值是根据确定函数所见的通常规则来确定的。

您需要通过第二个参数给出thisArg上下文来明确设置Array#filter

function unique(arr){
    arr.filter(function(e){
        console.log(this.name);
    }, arr);
}