false
它只是意味着,在<script type="text/javascript">
window.onload = function(){
//some code
},function(){
// some code
}();
</script>
事件上执行多个函数吗?
答案 0 :(得分:1)
它只是意味着,在window.onload上执行多个函数 事件
window.onload
事件只会执行一项功能。
了解原因:
我们这里有两位对我们很重要的运营商:=
和,
:
window.onload = function1(){ }, function2(){ }()
但是,由于=
运算符优先于,
运算符,因此,
的左侧变为:
window.onload = function1(){ ... }
而不是这个:
function1(){ ... }
这就是为function1
分配给window.onload
而不是function2
的原因。
然后,
运算符的右侧运行,即function2
- 因为它是一个IIFE,它会在那里被调用,但它的返回值不存储在任何地方。
有关优先规则,请参阅:operator associativity & precedence。
总结执行顺序:
答案 1 :(得分:0)
不,这并不意味着它将执行多个功能。如果你想实现这样做(source):
function func1() {
//some code
}
function func2() {
//some code
}
window.onload = function(){
func1();
func2();
};
在函数后使用括号()
表示您立即执行此函数,因此您不想使用它。
您在示例中显示的逗号在这种情况下根本不执行任何操作。
你只是分开它。您将第一个函数绑定到onload事件,然后执行annonymus函数(因为您使用括号()
)
也许正确的格式可以帮助您更清楚地看到它:
window.onload = function(){
//some code
},
function(){
// some code
}();
答案 2 :(得分:0)
function(){}()
(我们称之为 f1 )使用的语法意味着“加载javascript后立即执行我”。
在这种情况下,只要加载标记中的整个脚本,就会执行 f1 。
之后,一旦触发了windows.load事件,就会调用onload相关函数。