我的javascript构造函数方法将整个方法作为文本返回,而不是返回预期的返回值

时间:2012-03-07 17:14:48

标签: javascript

我是构造函数的新手,我在.js文件中包含以下内容:

// should just get the number of customers out of the passed-in object
function myCustomers(customerObj) {
    this.customerCount = function(customerObj) {
        return customerObj.length;
    };
}

在包含.js文件的.htm页面上,我有以下内容:

var tmpObj = new myCustomers(custObj);
alert(tmpObj.customerCount);

我所期望的是向我提供客户数量的警报,例如“1”等。相反,警报包含我的函数的整个文本,就好像它是一个字符串,如下所示:

function(customerObj) {
    return customerObj.length;
}

我确信这很简单,但我在搜索答案时遇到了困难,因为我的搜索包含非常通用的单词,如函数,文本/字符串,方法等.FYI,这个例子已经从一个更复杂的功能,希望能更容易理解这个问题。我已经测试了这个更简单的函数,结果相同。

提前致谢!

2 个答案:

答案 0 :(得分:2)

你应该这样调用这个方法:

var tmpObj = new myCustomers(custObj);
alert(tmpObj.customerCount(custObj));

注意方法括号;)

答案 1 :(得分:2)

在警告中,您实际上并没有调用该函数,而是将函数本身传递给alert()。试试这个:

alert(tmpObj.customerCount(custObj));

您可能还想更改myCustomers对象以挂起传递给构造函数的对象,因此在调用函数时不必再次传入它。