我正在Codecademy上学习Javascript。据我了解,Method是与对象关联的功能。我认为将其称为应在对象内部的方法。是吗?我是否应该真正完全理解编写无错误代码的函数和方法之间的主要区别。这让我很困惑。

在其下方的Codecademy代码中,他们说在第2行“ setAge”是一个方法,在其中它显然看起来像一个函数。它甚至与任何对象都不相关。因为它甚至不在任何对象内部。

// here we define our method using "this", before we even introduce bob
var setAge = function (newAge) {
  this.age = newAge;
};

// now we make bob
var bob = new Object();
bob.age = 30;
bob.setAge = setAge;

// make susan here, and first give her an age of 25
var susan = new Object();
susan.age = 25;
susan.setAge = setAge;
susan.setAge(35);
// here, update Susan's age to 35 using the method

最佳答案

这是一个很好的问题,我可以看到这可能会造成混淆。看来他们将其称为方法是因为它们后来修改了bob对象以包括该功能,从而使其成为“方法”。

var setAge = function (newAge) {
  // using "this" sometimes indicates
  // that a function may instead be an object method
  this.age = newAge;
};

// becomes a method
bob.setAge = setAge;


它们的代码等效于以下内容:

bob.setAge = function (newAge) {
  this.age = newAge;
};


您对方法的理解是正确的。

10-06 12:13