这是一个普遍好奇的问题,我一直在教自己面向对象的javascript编程,因为我喜欢它提供的结构和灵活性,但是我遇到了一个令我感到困惑的问题还要别的吗。假设我有以下代码:方法内的函数
function total (el,arr,i)
{
this.across = function(el,arr,i) {
$(el).each(function() {
if(!$(this).attr("id"))
{
//-- convert each value to a number and push to items array
arr.push(parseFloat($(this).val()));
i = i++;
}
});
return arr;
};
}
我可以创造的总一个新实例,并将其传递我的元素,数组和指标参数,然后调用total.across来填充我的数组和更新我的指数像这样:
$(document).ready(function(){
var arr = [[],[],[]];
var i = 0;
var el = $("#hourly input");
var t = new total(el,arr,i);
alert(t.across());
});
我的问题是,一旦我进入。每个方法,关键字this
不再是指总的实例,但现在在。每个方法传递的元素。那么我怎样才能将返回的值传递给传递给原始函数的数组。在这个例子中,我使用了arr关键字,但看起来不起作用。在这个例子中,我希望能得到新的
你一定问题不只是你的文件准备好功能? – adeneo
或者您在警报调用中引用该功能,而不是调用它? – adeneo
该代码不工作的实际原因可能是,但我的问题是具体如何保持上下文分离,并回答了我的问题,这实际上只是一个测试脚本没有其他任何东西,谢谢你的头。此外,我没有标记jquery,因为问题本身不是jQuery特定的 – richbai90