我的javascript构造函数方法以文本形式返回整个方法,而不是预期的返回值
我不熟悉构造函数,在.js文件中包含以下内容:我的javascript构造函数方法以文本形式返回整个方法,而不是预期的返回值,javascript,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页面上,我有以下内容:
// 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;
}
var tmpObj = new myCustomers(custObj);
alert(tmpObj.customerCount(custObj));
我相信这很简单,但我在谷歌上搜索答案时遇到了困难,因为我的搜索包含非常通用的词,如函数、文本/字符串、方法等。仅供参考,这个例子是从一个更复杂的函数中删减的,希望能更容易理解这个问题。我已经用同样的结果测试了这个更简单的函数
提前谢谢 您应该这样调用该方法:
function(customerObj) {
return customerObj.length;
}
var tmpObj = new myCustomers(custObj);
alert(tmpObj.customerCount(custObj));
注意方法括号;) 您应该这样调用该方法:
function(customerObj) {
return customerObj.length;
}
var tmpObj = new myCustomers(custObj);
alert(tmpObj.customerCount(custObj));
注意方法括号;) 在您的警报中,您实际上并没有调用函数,而是将函数本身传递给
alert()
。试试这个:
警报(tmpObj.customerCount(custObj))代码>
您可能还想将myCustomers对象更改为挂起传递到构造函数中的对象,这样您就不必在调用函数时再次传递它。在您的警报中,您实际上并没有调用函数,而是将函数本身传递到警报()
。试试这个:
警报(tmpObj.customerCount(custObj))代码>
您可能还想将myCustomers对象更改为挂起传递到构造函数中的对象,这样您就不必在调用函数时再次传递该对象。谢谢,这一回答既解决了我的问题,也解释了为什么我要将函数作为文本返回。我很感激你的快速回答!就您的建议而言,您的意思是添加类似于this.customers=custObj在构造函数中输入code>,然后让我的方法返回this.customer.length代码>?谢谢,这个答案既解决了我的问题,也解释了为什么我要将函数恢复为文本。我很感激你的快速回答!就您的建议而言,您的意思是添加类似于this.customers=custObj在构造函数中输入code>,然后让我的方法返回this.customer.length代码>?谢谢MatuDuke。。。我发现我错误地认为这个。customerCount
是方法的返回值,而不是方法本身。我有这个权利吗?谢谢你的快速帮助!谢谢你,马图杜克。。。我发现我错误地认为这个。customerCount
是方法的返回值,而不是方法本身。我有这个权利吗?谢谢你的快速帮助!