Javascript Can';返回对象方法名

Javascript Can';返回对象方法名,javascript,Javascript,我试图获得delicious和love方法的名称,然后将其放入数组quotes中。我需要这样做,因为引号将显示在选择框中。我尝试使用函数.name。它适用于Say,但当我在delicious和love上使用它时,我得到的是空字符串 这里怎么了 console.log('>>START') function Say(name) { this.name = name } function Food(name) { this.name = name } Say.del

我试图获得
delicious
love
方法的名称,然后将其放入数组
quotes
中。我需要这样做,因为引号将显示在选择框中。我尝试使用
函数.name
。它适用于
Say
,但当我在
delicious
love
上使用它时,我得到的是空字符串

这里怎么了

console.log('>>START')

function Say(name) {
    this.name = name
}

function Food(name) {
    this.name = name
}

Say.delicious = function(food) {
    if (!food) food = 'food'
    console.log('This '+food+' is delicious')
}
Say.love = function(food) {
    if (!food) food = 'food'
    console.log('I love '+food)
}

var pizza = new Food('Pizza')
var donut = new Food('Donut')
var quotes = [Say.delicious.name, Say.love.name]

Say.delicious(donut.name) // This Donut is delicious
Say.love(pizza.name) // I love Pizza
console.log(quotes) // ["",""]
console.log(Say.name) // Say

这是因为函数
delicious
实际上是一个匿名函数,如果我理解正确的话,它引用了
比如.delicious

您可以将其指定为命名函数,如下所示:

Say.delicious = function delicious(food) {
    if (!food) food = 'food'
    console.log('This '+food+' is delicious')
}
console.log('>>START')
函数Say(名称){
this.name=name
}
功能食品(名称){
this.name=name
}
Say.delicious=功能美味(食物){
如果(!食品)食品=‘食品’
console.log('这个'+food+'很好吃')
}
爱=功能爱(食物){
如果(!食品)食品=‘食品’
console.log('我爱'+食物)
}
var pizza=新食品(“pizza”)
var甜甜圈=新食品(“甜甜圈”)
var quotes=[Say.delicious.name,Say.love.name]
Say.delicious(donut.name)//这个甜甜圈很好吃
Say.love(pizza.name)//我喜欢比萨饼
console.log(引号)/[“”,“”]
console.log(Say.name)//Say