gpt4 book ai didi

javascript - 方法内的函数

转载 作者:行者123 更新时间:2023-11-28 20:10:18 28 4
gpt4 key购买 nike

这是一个普遍好奇的问题,我一直在自学面向对象的 javascript 编程,因为我喜欢它提供的结构和灵 active ,但我遇到了一个让我最困惑的问题。假设我有以下代码:

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 实例,并向其传递我的元素、数组和索引参数,然后调用 Total.across 来填充我的数组并更新 i 的索引,如下所示:

$(document).ready(function (){


var arr = [[],[],[]];
var i = 0;
var el = $("#hourly input");
var t = new total(el,arr,i);
alert(t.across());


});

我的问题是,一旦我进入 .each 方法,关键字 this 不再引用 Total 的实例,而是现在引用 .each 方法中传递的元素。那么如何将返回的值推送到传递给原始函数的数组。在此示例中,我使用了 arr 关键字,但这似乎不起作用。在这个例子中,我希望得到新的

最佳答案

分配一个上下文变量this:

this.across = function(el,arr,i) {
var that = this;
$(el).each(function() {
console.log(that); //is "this" from before the .each

关于javascript - 方法内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011062/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com