为 JS 函数设置变量
Set variable for a JS function
所以基本上我有一个JS函数,看起来像:
var myFunc = function () {
var settings = {/*my default settings */};
function otherFunc(arg){
/*do stuff*/
}
otherFunc(settings);
return {settings:settings};
}()
现在,使用控制台我可以调用myFunc.settings
,它将完美地输出这些,但是我想让用户覆盖默认设置,例如:
<script src="myfunc.js"></script>
<script>myFunc.settings = {/*overwrite some settings*/};</script>
现在myFunc.settings
是新设置,但该功能仍然使用"旧"设置。知道我会怎么做吗?
谢谢!
我不知道
为什么myFunc
甚至是一个函数。它应该是一个对象:
var myThing = {
settings: {/*my default settings */};
}
然后,您可以调用myThing.settings
以获取默认设置。
您可以使用
this
使其成为属性(而不是本地属性):
function MyFunc () {
this.settings = {/*my default settings */};
};
MyFunc.settings = { foo: 'bar' };
console.log(MyFunc.settings); // Object {foo: 'bar'}
这可能会公开比您真正想要的更多内容,因此您可以考虑在构建要创建的任何内容时允许传递选项:
function MyFunc (options) {
var defaults = { foo: 'baz' };
var settings = /* merge defaults and options */;
/* You probably don't even need to expose settings now. */
};
var instance = new MyFunc({ foo: 'bar' });
有一个参数,您可以在其中传入设置,如果未提供参数,请恢复为默认设置:
var myFunc = function (newSettings) {
var settings = newSettings || {/*my default settings */};
//do something
return {settings:settings};
}
相关文章:
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- Javascript使用变量设置属性
- 敲除js变量设置类似于调用函数
- 使用输入变量设置元素的值
- 为什么我们将控制器变量设置为等于“0”;这个“;在角度上
- 将外部控制器的范围变量设置为角度
- 谷歌地图标记在通过变量设置标记和经度时不保持不变
- 尝试在 jquery ajax 帖子中将变量设置为URL 的一部分
- 如果循环中至少有一个元素返回 false,如何将变量设置为 false
- 如何将宽度和高度变量设置为浏览器窗口的宽度和高度
- 如何将变量设置为外部内容
- 需要将变量设置为特定的数字范围
- 执行批处理文件的Javascript,该文件包含基于每个会话的环境变量设置
- 如何在jquery中基于变量设置某个东西的宽度
- 将变量设置为等于本地JSON文件
- 根据Angular中的单独变量设置下拉默认值
- 如何使用JavaScript变量设置函数集css宽度
- 如何为一个javascript变量设置give多个值
- 如何将javascript变量设置为php变量并将其存储在数据库中
- 如何在javascript中为变量设置一行setter