Javascript 你到底是做什么的?

Javascript 你到底是做什么的?,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,以前从未见过。应用方法。有人能给我解释一下它的作用吗?这是从 函数对象带有apply()和call()方法。它们都有效地做了相同的事情,只是略有不同。它们所做的是允许您在该函数的作用域内定义这个指针。例如,如果您这样做: function myFunc(param1, param2) { alert(this) } var first = 'foo'; var second = 'bar'; myFunc.call('test', first, second); //alerts 'test

以前从未见过。应用方法。有人能给我解释一下它的作用吗?这是从


函数对象带有
apply()
call()
方法。它们都有效地做了相同的事情,只是略有不同。它们所做的是允许您在该函数的作用域内定义
这个
指针。例如,如果您这样做:

function myFunc(param1, param2) { alert(this) }

var first = 'foo';
var second = 'bar';

myFunc.call('test', first, second); //alerts 'test'

myFunc.apply('test', [first, second]); //alerts 'test'

在这两种方法中,您都将
指针作为第一个参数传递。在
call()
方法中,随后按顺序传递所有后续参数,以便第二个参数成为myFunc的第一个参数。在
apply()
方法中,您可以将额外的参数作为数组传入。

看看这里:它允许您更改
this
的上下文,并将数组作为参数传递。不过,我有一个问题,因为我们将“this”作为第一个参数传递,它是如何工作的?@user1074316语言的魔力。它可以(某种程度上)通过将函数赋给对象的属性,然后用参数调用来编写。当然,它是由语言实现的,没有临时值。
function myFunc(param1, param2) { alert(this) }

var first = 'foo';
var second = 'bar';

myFunc.call('test', first, second); //alerts 'test'

myFunc.apply('test', [first, second]); //alerts 'test'