var myFunc = function(x = getUndefined()){
return x
};
function getUndefined(){
return undefined
};
我想知道为什么这返回未定义而不是抛出某种错误。 x如何知道不继续调用
getUndefined()
? 最佳答案
为了了解幕后发生的事情,您可以看一下这段代码如何向下移植到ES5:
"use strict";
var myFunc = function myFunc() {
var x = arguments.length <= 0 || arguments[0] === undefined ? getUndefined() : arguments[0];
return x;
};
function getUndefined() {
return undefined;
};
仅当没有传递
getUndefined
的值时才调用x
函数。尽管ES6引擎可能不遵循这种精确策略,但很可能相当相似。