如果变量尚未传递给函数,则初始化该变量。这是正确的方法吗?
Initializing a variable if it wasn't already passed to the function. Is this the right way?
我在遇到的几个脚本中都看到过这种约定。如果 none 传递给函数,它应该初始化一个空的选项对象:
module.exports = function (opts) {
// Create empty options if none are passed
opts = opts || {};
};
但是在阅读本文时我在想,这不会创建一个全局 opts
变量吗?用var
作为前缀不是更好吗?或者 commonjs 模块样式会阻止这种情况吗?
变量opts
在函数签名中声明为参数。因此,它的范围是函数。将变量声明为参数与 var ..
具有基本相同的效果(另外,它是一个参数)。您只是为该变量重新分配一个新值。
它 does not create a global variable 因为它已经在你的函数范围内,因为它是函数的参数。
var test = function (opts) {
// Create empty options if none are passed
opts = opts || {};
};
test({ "test" : true });
alert(typeof opts); // opts is undefined
我在遇到的几个脚本中都看到过这种约定。如果 none 传递给函数,它应该初始化一个空的选项对象:
module.exports = function (opts) {
// Create empty options if none are passed
opts = opts || {};
};
但是在阅读本文时我在想,这不会创建一个全局 opts
变量吗?用var
作为前缀不是更好吗?或者 commonjs 模块样式会阻止这种情况吗?
变量opts
在函数签名中声明为参数。因此,它的范围是函数。将变量声明为参数与 var ..
具有基本相同的效果(另外,它是一个参数)。您只是为该变量重新分配一个新值。
它 does not create a global variable 因为它已经在你的函数范围内,因为它是函数的参数。
var test = function (opts) {
// Create empty options if none are passed
opts = opts || {};
};
test({ "test" : true });
alert(typeof opts); // opts is undefined