为何alert函数中的prompt会先于alert执行?
为什么prompt会先于alert执行?
这和高阶函数(比如柯里化)完全没关系,核心是函数调用的参数求值规则:
在JavaScript里,当你调用一个函数时,引擎会先把这个函数的所有参数表达式计算完成,再把结果传给函数本身执行。
看你的代码:
alert(prompt().slice(0,250));
这里alert的参数是prompt().slice(0,250)——这个表达式里首先需要执行prompt()获取用户输入的字符串,接着调用该字符串的slice方法截取前250个字符,得到最终的参数值后,才会调用alert弹出这个结果。
总结一下:函数的参数总是在函数本身执行前被求值,这是编程语言的基本执行逻辑,和高阶函数没有任何关联。
内容的提问来源于stack exchange,提问作者Paulino G
相关产品推荐
相关产品推荐

