JS揭示模块模式,我做错了什么
JS Revealing module Pattern, What Am I doing Wrong
我一直在尝试使用揭示模块模式,并认为我应该为非ss3自定义滚动条创建一个函数。
var sb=(function($){
//Private
var settings=function(props){
return{
wrapper: props.wrapper ? document.getElementById(props.wrapper):null,
thumb: props.thumb ? document.getElementById(props.thumb):null,
track: props.track ? document.getElementById(props.track):null,
left: props.left ? props.left:null,
right: props.right ? props.right:null,
contentWidth: props.contentWidth? props.contentWidth:null
};
};
var LOG=function(input){
console.log(input)
};
//Object Literal
return{
Log:LOG,
settings:settings
};
})(jQuery);
以上就是模块。我正在设置这样的值:
window.onload=function(){
sb.settings({wrapper:'bodyWrapper',thumb:'thumb',track:'track'});
}
然而,当我尝试测试它时,我不断地得到"未定义"和其他错误。在模块内部运行console.log(settings.wrapper)
会返回undefined
。我真的不知道哪里出了问题,所以如果有任何帮助,我将不胜感激。提前感谢
在模块内部运行
console.log(settings.wrapper)
会返回undefined
。
当然,因为settings
是函数对象(它没有wrapper
属性),而不是对象,所以它在被调用时已经返回。你似乎想要
var sb = (function(){
// private variables
var settings = {};
// public (exported) properties
return {
log: function(input) {
console.log(input);
},
getSetting: function(name) {
return settings[name];
},
setSettings: function(props){
settings = { // assign to the private variable!
wrapper: props.wrapper ? document.getElementById(props.wrapper) : null,
thumb: props.thumb ? document.getElementById(props.thumb) : null,
track: props.track ? document.getElementById(props.track) : null,
left: props.left || null,
right: props.right || null,
contentWidth: props.contentWidth || null
};
return true;
}
};
})();
window.onload = function(){
sb.setSettings({wrapper:'bodyWrapper',thumb:'thumb',track:'track'});
sb.log(sb.getSetting("wrapper"));
}
相关文章:
- 正在尝试为Docpad网站设置Lunr全文搜索插件.我做错了什么
- 重新加载重复数据失败,我做错了什么
- 我做错了什么
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- Javascript语法 - 我做错了什么
- 角度灯箱不起作用.我做错了什么
- 在这个猫鼬独特的保存前验证中,我做错了什么
- 简单的Youtube iframe API就在文档中,我做错了什么
- 我正在尝试实现一个AJAX调用.我做错了什么
- 我对这个动态查询做错了什么
- 我在jQuery事件处理和隐藏/显示图像元素方面做错了什么
- 闭包中的本地变量从外部更改.这是一个javascript错误,或者我做错了什么
- JS离线检测?我做错了什么
- Jquery自动完成不是't工作.我做错了什么
- 是ngRouter的角度错误还是我做错了什么
- jQuery Toggle——我做错了什么
- javascript原型,我做错了什么
- 超级初学者JavaScript..我做错了什么
- 我在这里做错了什么?否则,如果
- Javascript和HTML - 添加一个下拉菜单,我在这里做错了什么