朋友们!
任何人都可以告诉我,为什么我的函数在输出字符串的末尾给我一个额外的值“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!
输出的当前结果:“闭包必须使用!未定义”
因为以下行:
console.log( buffer() );
在没有参数的情况下调用缓冲区函数,所以value
是未定义的。
如有必要,您可以更改缓冲区功能:
return function buffer(value) {
return typeof value === "undefined" ? bufferStin : butterStin += String(value);
};