对象 属性 来自方法参数时未定义

Object property is undefined when it comes from method parameter

我坚持这个:

var Names = function (name,integer) {
    this.name = name;
    this.integer = integer;
};

var Discount = {
    applyDiscount: function(person) {
        console.log("person name is: "    + person);            //Eve
        console.log("person integer is: " + person["integer"]); //undefined
        console.log("person integer is: " + Eve["integer"]);    // 23
    }
};

var Eve = new Names("Eve Something", 23);

Discount.applyDiscount("Eve");

当我尝试获取 Eve.integer 值(使用 person 参数)时 - 我得到了 undefined.

为什么 person["integer"] 在这种情况下不起作用?

您将 字符串 "Eve" 传递给函数,而不是变量 Eve 指向的对象。删除引号。

需要使用对象,而不是字符串:

Discount.applyDiscount(Eve);