友!
任何人都可以告诉我,为什么下面的函数在输出字符串的末尾给我一个额外的值“undefined”。
我想,可能是因为关于闭门器功能的不太明确的知识错误。 ^)
提前感谢所有人。
function makeBuffer() {
var butterStin = ''; //local variable for storage buffer data
return function buffer(value) {
return butterStin += String(value);
};
}
var buffer = makeBuffer();
buffer('Closures');
buffer(' Must');
buffer(' Use!');
console.log( buffer() ); // Closures Must Use!
输出的当前结果:“闭包必须使用!未定义”
答案 0 :(得分:1)
因为以下行:
console.log( buffer() );
在没有参数的情况下调用缓冲区函数,因此value
未定义。
如果需要,您可以更改缓冲区功能:
return function buffer(value) {
return typeof value === "undefined" ? bufferStin : butterStin += String(value);
};