大佬们我想问一下,为什么我这里返回i的指,最后不管点击几次,
javascript吧
全部回复
仅看楼主
level 2
KID♤▫◆ 楼主
大佬们我想问一下,为什么我这里返回i的指,最后不管点击几次,i输出的还是1,怎么样才能把函数里面的值输出到函数外啊,我前面设置了全局变量i=1,return好像只能输出函数里的定值,会变的输出不了?
2020年06月11日 17点06分 1
level 13
首先你要搞清楚你的代码发生了什么。
你在控制台里面只能看到来自 console.log 之类的打印函数显示的东西,除非是你自己在控制台上敲的。你的那个 console.log(i) 是在事件函数外面的,它只会执行一次,也就是你的元素的事件函数绑定完事件之后, console.log(i) 执行了一遍之后就没它事了。我估计你是搞错了你的脚本到底有没有在输出。
第二个你要搞清楚的是,return 的值到底去了哪里。
你可能以为 return 的值是到了 console.log(i) 里面,但实际上这两个东西根本就不在一个频道上。你的 return 是写在事件函数里面,简单地表示一下你的代码结构:
你的 return 直接把值返回了事件函数执行时的上下文,根本不关 console.log 的事,而且根本没有任何东西去处理你的 return,return 的值等于直接掉进数据黑洞了,所以根本没人会在事件函数里 return 的,因为根本没有任何意义:return 给谁?
所以整个问题的实质可能就是你以为你的 return 在你点点点的时候起作用了,但事实上除了第一次输出,你之后的点点点根本没有任何输出。如果你控制台上的内容只有一行的话,那我估计就是没有错了。
2020年06月12日 17点06分 2
是的和你说的一样,输出的i只有一行,也就是说,我函数里面所写的return的值是返回到了函数的上面,但是我让他输出的时候实在函数之后,所以无法识别到吗
2020年06月13日 02点06分
@KID♤▫◆ 你应该直接在函数里面 console.log(i)
2020年06月13日 04点06分
@BSPR0002 但是我的目的是想让函数里面的i输出到外面来,在另外一个函数里面进行验证
2020年06月13日 05点06分
@KID♤▫◆ 那你就在事件函数里直接把 i 提交给那个函数,就像我之前说的,return的值在全新的上下文里,你要就在事件函数里把要做的做完。
2020年06月13日 05点06分
1