首页 > 解决方案 > 为什么在 JavaScript 中运行时输出“未定义”?

问题描述

const fruits = {
    apple: '',
    mango: '',
    peach: '',
    banana: '',
    pineapple: '',
    strawberry: '',

    getFruit(name) {
        return this.name;
    },
};

let name = 'apple';

var callFunc = fruits.getFruit(name);

console.log(callFunc);

标签: javascript

解决方案


.name指称为名称的成员。由于您没有这样的成员,undefined因此被退回。如果要引用动态成员,可以使用[]运算符:

const fruits = {
    apple: '',
    mango: '',
    peach: '',
    banana: '',
    pineapple: '',
    strawberry: '',

    getFruit(name) {
        return this[name]; // Here!
    },
};

推荐阅读