func.apply(null, arr)
您能解释一下使用和func.apply(this, arr)
在下面的代码示例中的区别吗?
var Foo = function() {
function useMe(a, b, c)
{
document.body.innerHTML =
'<p>a: ' + a + '<br>b: ' + b + '<br>c: ' + c + '</p>'
}
function go()
{
var arr = ['foo', 'bar', 'baz']
useMe.apply(null, arr)
}
return {
go: go,
useMe: useMe
}
}()
Foo.go()
来源:http: //jsfiddle.net/YQsaJ/
var Foo = function() {
function useMe(a, b, c)
{
document.body.innerHTML =
'<p>a: ' + a + '<br>b: ' + b + '<br>c: ' + c + '</p>'
}
function go()
{
var arr = ['foo', 'bar', 'baz']
useMe.apply(this, arr) // USING this INSTEAD OF null
}
return {
go: go,
useMe: useMe
}
}()
Foo.go()
JSFiddle:http: //jsfiddle.net/3DvtA/
我知道当null
用作函数的第一个参数时,apply
全局对象,即window
用作. 对于像上面的代码这样简单的用法,我们作为函数的第一个参数传递什么真的很重要吗?this
useMe
apply