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

时间:2015-01-09 19:01:07

标签: javascript javascript-objects

我坚持这个:

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"]在这种情况下不起作用?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

Discount.applyDiscount(Eve);