我是构造函数的新手,我在.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,这个例子已经从一个更复杂的功能,希望能更容易理解这个问题。我已经测试了这个更简单的函数,结果相同。
提前致谢!
答案 0 :(得分:2)
你应该这样调用这个方法:
var tmpObj = new myCustomers(custObj);
alert(tmpObj.customerCount(custObj));
注意方法括号;)
答案 1 :(得分:2)
在警告中,您实际上并没有调用该函数,而是将函数本身传递给alert()
。试试这个:
alert(tmpObj.customerCount(custObj));
您可能还想更改myCustomers对象以挂起传递给构造函数的对象,因此在调用函数时不必再次传入它。