我有这段代码
spsimpleamir_tag_id
结果是未定义的,我想知道在这种情况下'this'指的是什么,我该怎么做才能使'this.name'实际上打印一些东西而不是未定义?
答案 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);
}