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";
}
我理解使用 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";
}