我理解使用this
为变量赋值的概念:
this.foo = 37;
但我对与函数调用一起使用它感到困惑:
this.foo();
这是什么意思?
答案 0 :(得分:1)
这只是调用函数的上下文。在全局执行上下文(函数之外)中它是全局对象。在你的情况下,这只是某种类型的对象,foo就是它的一个属性。该属性可以是整数甚至函数的值。
var someObject = {
foo1: 37,
foo2: function () {
return this.foo1;
}
};
someObject.foo2.apply(someObject);
在上面的例子中,我创建了一个具有两个属性的对象。一个是整数值,另一个是函数。然后我使用apply调用对象上的函数,允许我们设置函数的上下文。我将上下文设置为我创建的对象,所以一旦在函数内部我就可以像这样引用它。
答案 1 :(得分:1)
JavaScript中的函数是第一类对象。它们可以像任何其他对象一样对待。
它们可以存储在变量中。它们可以存储在其他对象的属性中。它们可以作为函数参数传递。
这只是一个值为函数的属性的示例。
var obj = {};
obj.foo = myFunction;
obj.foo();
function myFunction () {
document.body.style.background = "red";
}