Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简单变量赋值不起作用_Javascript_Jquery - Fatal编程技术网

Javascript 简单变量赋值不起作用

Javascript 简单变量赋值不起作用,javascript,jquery,Javascript,Jquery,在我看来,我有一个简单的变量赋值不起作用 此代码位于jQuery中,有关上下文,请参见 我打电话: $('#foo').on('someEvent', eventHandlerFn); 我在jQueryon函数中得到了这个问题。以下是起点: 从代码下方的控制台可以看到,selector设置为myeventHandlerFn,而fn变量未定义。这是意料之中的 在第3509行,选择器的值被分配到fn。因此,fn的值应与选择器的值相同,否 请参见下文-选择器已按预期定义,但fn仍未定义。为什么?

在我看来,我有一个简单的变量赋值不起作用

此代码位于jQuery中,有关上下文,请参见

我打电话:

$('#foo').on('someEvent', eventHandlerFn);
我在jQuery
on
函数中得到了这个问题。以下是起点:

从代码下方的控制台可以看到,
selector
设置为my
eventHandlerFn
,而
fn
变量未定义。这是意料之中的

在第3509行,
选择器
的值被分配到
fn
。因此,
fn
的值应与
选择器的值相同,否

请参见下文-
选择器
已按预期定义,但
fn
仍未定义。为什么?


最终结果是我的事件处理程序从未注册。

我看不出有任何问题。请随意编辑JSFIDLE,使其看起来更像您的代码


你能试着输入
console.log(fn)吗在第3510行之后并重新运行?也许这只是调试器的问题?

我看不出这有什么问题。请随意编辑JSFIDLE,使其看起来更像您的代码


你能试着输入
console.log(fn)吗在第3510行之后并重新运行?也许这只是调试器的问题?

代码运行良好,如以下两个屏幕所示(问题在于chrome如何设置控制台的上下文)

看起来console在定义时可以访问变量(在本例中是传递的参数),而不是在运行代码时访问活动值

互换前

互换后


代码运行良好,如以下两个屏幕所示(问题在于chrome如何设置控制台的上下文)

看起来console在定义时可以访问变量(在本例中是传递的参数),而不是在运行代码时访问活动值

互换前

互换后



这似乎是Chrome中调试器的一个问题——要么是实质性问题,要么只是调试器的细微差别,我不理解。fn在调用结束时确实有一个值,但不是断点所在的位置。

这似乎是Chrome中调试器的一个问题-要么是实质性问题,要么只是调试器的细微差别,我不理解。fn在调用结束时有一个值,但在断点所在的位置没有值。

eventHandlerFn
变量作为参数传递。。这是什么?请在问题中发布您的代码。eventHanderFn只是一个调用警报的fn。您可以在控制台中看到它是什么-它被分配给“selector”变量。使用这样一个简单的事件处理程序,您会认为只要您传递了一个实际声明并在作用域内的函数,就很难出错?当您在X行上设置断点并且调试器在该点停止时,第X行尚未运行。它在X线运行之前停止。如果要在第X行之后查看结果,请将断点设置为第X+1行。因此,预计尚未分配
fn
。您将
eventHandlerFn
变量作为参数传递。。这是什么?请在问题中发布您的代码。eventHanderFn只是一个调用警报的fn。您可以在控制台中看到它是什么-它被分配给“selector”变量。使用这样一个简单的事件处理程序,您会认为只要您传递了一个实际声明并在作用域内的函数,就很难出错?当您在X行上设置断点并且调试器在该点停止时,第X行尚未运行。它在X线运行之前停止。如果要在第X行之后查看结果,请将断点设置为第X+1行。因此,预计尚未分配
fn
。谢谢Gaby,尽管没有看到这一点。我使用了下面链接的小提琴,在通过第41行之后,fn仍然没有定义,但选择器没有定义(参见下面链接的图片)。很奇怪。还有@RoyTruelove什么chrome版本?我是最新的:32.0.1700.76 mThanks Gaby,但没看到这个。我使用了下面链接的小提琴,在通过第41行之后,fn仍然没有定义,但选择器没有定义(参见下面链接的图片)。很奇怪。还有@RoyTruelove什么chrome版本?我在用最新版本:32.0.1700.76 mThanks for the fiddle。即使使用这个提琴,我也能够复制这个问题-请参见我在Gaby的回答下的评论。@RoyTruelove这确实很奇怪,我使用的是JSFIDLE,并且在第41行设置了一个断点,fn已定义。您的屏幕截图中有什么错误(右上角的小x-可能不相关)。这是我的截图-谢谢你的提琴。即使使用这个提琴,我也能够复制这个问题-请参见我在Gaby的回答下的评论。@RoyTruelove这确实很奇怪,我使用的是JSFIDLE,并且在第41行设置了一个断点,fn已定义。您的屏幕截图中有什么错误(右上角的小x-可能不相关)。这是我的截图-