猿问

关于f(f(x))

var f = function () {

console.log(1);

}
f()//1
f(f(x))//打印两次1

括号内的f(x)不是外层的f(x)的参数么,这里的参数不影响函数内部,为什么会连续打印两次,也就是f()执行了两次

墨独
浏览 1132回答 1
1回答

习惯受伤

因为JS是动态语言,并不会像C/C++/C#/JAVA这些语言一样检查参数类型是否一致,在执行时才会传入并使用。虽然你传入的参数并没有使用,但是在执行的时候分析语句,会分析成:var temp = f(x); //temp = undefined f(temp);这两条语句,所以都执行了,执行两次。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答