gpt4 book ai didi

javascript - 如何从 JavaScript 函数中获取值?

转载 作者:行者123 更新时间:2023-11-30 06:04:00 25 4
gpt4 key购买 nike

我需要从 JavaScript 函数中获取行号:

function cap_check(){
var row;

$('td').change(function(){
row = $(this).parent().parent().children().index($(this).parent());
alert(row);
});

alert(row);
}

函数中, 被正确提醒。在函数之外,它是 undefined

最佳答案

调用 cap_check 绝不会警告除 undefined 之外的任何内容。函数不是静态对象。当您调用一个函数时,它会在内部堆栈上创建一个新实例。 row 将初始化为 undefined 并且新的点击处理程序将绑定(bind)到 td 元素(也不太可能有用 - 作为另一个重复事件每次调用 cap_check 时都会绑定(bind)处理程序。

很可能,您想要这样的东西:

var cap_check=(function() {
var row;
$('td').change(function(){
row = $(this).parent().parent().children().index($(this).parent());
alert(row);
});
return function() {
alert(row);
};
}());

这是一个自执行函数。当脚本运行时,“返回”之前的函数部分会立即执行,创建一次事件绑定(bind),并返回一个引用原始函数实例的函数。这将创建一个闭包,这意味着该函数维护对其父对象的引用(在本例中为 row 变量)。因此,您的事件处理程序和作为 cap_check 返回的函数现在将始终引用 row 的同一实例。

所以 - 现在任何调用 cap_check 的代码都将始终返回与 change 事件相同的值。

fiddle :

http://jsfiddle.net/RagUe/5/

(请注意,我将事件更改为“点击”而不是“更改”以使其易于测试)。

关于javascript - 如何从 JavaScript 函数中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6267179/

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