Javascript:如果参数未作为函数调用,则返回默认值
Javascript: returning a default value if a parameter is not called as a function
我想知道如何在变量调用中返回默认值,假设此变量返回一个带有函数的对象,但是如果我直接调用它(即直接调用模块,而不是module.get)我希望它从其内部函数之一返回默认值:
目前我有这个:
function createModule() {
module = (function() {
var val = null;
function getVal() {
return val;
}
function setVal(newVal) {
val = newVal;
}
return {
get: getVal,
set: setVal
}
})();
}
目前模块返回一个object
,您可以使用get()
和set()
参数函数来修改其val
变量,但是我希望模块的默认返回值为"模块"。
有什么办法可以做到这一点吗?
编辑:我想要的功能是这样的:
> module.set('testValue');
> module.get();
'testValue'
> module; // or using module(); instead
'testValue'
我想给module
打电话或module()
与打电话module.get()
完全相同
你可以使module
对象成为类似get
的函数:
module = (function() {
var val = null;
function getVal() {
return val;
}
function setVal(newVal) {
val = newVal;
}
function module() {
return val;
}
module.get = getVal;
moudle.set = setVal;
return module;
})();
> module.set('testValue')
> module.get()
'testValue'
> module()
'testValue'
但是我不明白你为什么需要它。
function createModule(opt) {
var options = {
val: 'foo'
};
if(typeof opt === 'object'){
// Using underscore's extend method... jQuery has a similar method, or you can create your own.
_.extend(options, opt);
}
module = (function() {
var val = options.val;
function getVal() {
return val;
}
function setVal(newVal) {
val = newVal;
}
return {
get: getVal,
set: setVal
}
})();
}
相关文章:
- 如何记录调用另一个函数的函数的返回值
- 从JSP页面调用Java Script函数未返回值
- 我可以获得用Ajax调用的函数的返回代码吗
- 从函数返回函数而不调用返回的函数
- jQuery deferred:用于延迟函数的返回,直到函数内的异步调用完成+获取返回值
- PHP调用脚本函数,返回值为Uncaught SyntaxError:意外的令牌ILLEGAL
- node.js for循环在函数调用返回之前进行迭代,从而产生对象问题
- 如何使用一些变量参数从javascript函数调用 asp.net C#函数并从C#函数获取字符串返回
- ajax 调用返回时可以向页面添加新的 javascript 函数吗?
- 使用 ajax 调用返回嵌套函数的值时出现问题
- 从 Javascript 调用 PHP 函数并返回一个数组
- JavaScript - 使用具有 AJAX 调用的函数的返回参数
- .done() 函数在抓取本地 JSON 文件时未在 AJAX 调用返回的承诺上运行
- javascript函数调用返回未定义和页面连续加载
- 分配给变量的javascript函数调用返回未定义的结果
- 递归函数调用返回
- 从函数调用返回对象的函数输出未定义
- 为什么这个函数调用返回一个字符串而不是一个数字
- 从嵌套异步函数调用返回谓词
- 如何在函数内部分配函数调用返回的值[JS]