gpt4 book ai didi

javascript - 为什么 `foo()` 在这里工作?

转载 作者:行者123 更新时间:2023-11-30 12:26:01 25 4
gpt4 key购买 nike

这是一个 fiddle :

https://jsfiddle.net/5k10h27j/

为什么将 foo() 设置为未定义函数的参数时会被调用?

function foo(){
alert('huh??');
}
jQuery('#container').on('change', 'input', function(e){
console.log('change');
}).blahblah(foo());

最佳答案

在尝试定位未定义的函数之前调用该函数。

像这样的表达式

  objectReference.propertyName( arg1, arg2, arg3 )

该语言的规范规定,在进行任何测试以确定函数引用是否实际有效之前,对参数求值。因此,您对参数列表中的 foo() 的调用会被评估,并且只有在其值已知后才会进行任何测试以查看属性引用是否是一个真实的函数。

Here is the relevant portion of the spec.第 3 步是参数的评估,第 4 步是测试代码所说的作为函数调用的东西是否实际上是一个函数。

关于javascript - 为什么 `foo()` 在这里工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29357279/

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