this.foo() 是什么意思?

What is the meaning of this.foo()?

我理解使用 this 为变量赋值的概念:

this.foo = 37;

但我对将它与函数调用结合使用感到困惑:

this.foo();

这是什么意思?

这只是调用函数的上下文。在全局执行上下文中(在函数之外)它是全局对象。在您的情况下,这只是 foo 是 属性 的某种类型的对象。 属性 可以是整数或偶函数等值。

var someObject = {
    foo1: 37,
    foo2: function () {
        return this.foo1;
    }
};

someObject.foo2.apply(someObject);

在上面的示例中,我创建了一个具有两个属性的对象。一个是整数值,另一个是函数。然后我使用 apply 调用对象上的函数,这允许我们设置函数的上下文。我将上下文设置为我创建的对象,所以一旦在函数内部,我就可以这样引用它。

JavaScript 中的函数是第一个 class 个对象。可以像对待任何其他对象一样对待它们。

它们可以存储在变量中。它们可以存储在其他对象的属性中。它们可以作为函数参数传递。

这只是一个 属性 的例子,它的值是一个函数。

var obj = {};
obj.foo = myFunction;
obj.foo();

function myFunction () {
    document.body.style.background = "red"; 
}