[英]JS Revealing module Pattern, What Am I doing Wrong
我一直在嘗試利用顯示模塊模式,並認為我會為非CSS3自定義滾動條提供功能。
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"));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.