JavaScript调用对象语法上的方法

JavaScript调用对象语法上的方法,javascript,object,methods,Javascript,Object,Methods,我是JavaScript的初学者,正在阅读Nick Morgan为孩子们编写的JavaScript 我用JavaScript创建了以下函数- var speak = function () { console.log(this.sound + "! My name is", this.name + "!"); }; 我还创建了一个cat对象,我想用这个函数作为方法- var cat = { sound: "Miaow", name: "Mittens", spe

我是JavaScript的初学者,正在阅读Nick Morgan为孩子们编写的JavaScript

我用JavaScript创建了以下函数-

var speak = function () {
    console.log(this.sound + "! My name is", this.name + "!");
};
我还创建了一个cat对象,我想用这个函数作为方法-

var cat = {
    sound: "Miaow",
    name: "Mittens",
    speak: speak
};
现在,我有点困惑。
cat.speak
我知道是指一种方法

如果我调用
cat.speak
,我知道我正在访问speak属性的值,因此它返回函数定义

function () {
    console.log(this.sound + "! My name is", this.name + "!");
}
但是我不明白从哪里访问
cat.speak()


我所说的两种说法之间有什么区别?

我希望这个例子能帮助您:

var speak = function () {
    console.log(this.sound + "! My name is", this.name + "!");
};

var cat = {
    sound: "Miaow",
    name: "Mittens",
    speak: speak
};


console.log(cat.speak);
cat.speak();
调用cat.speak()时,将对对象调用分配给var speak的函数。
相反,如果调用cat.speak,则会得到函数定义