component.js
var component = (function(){
var self;
var default_options = {
array_option : [],
string_option : "default"
};
return {
other_function: function(args) {
},
init: function(options) {
self = this;
// merge in user options
for (var attr in options) {
if (options.hasOwnProperty(attr)) {
self.o[attr] = options[attr];
}
}
/***
* Initialize component
*/
self.other_function(args);
}
};
})();
然后在html中
<script src="component.js"></script>
<script>
// init the component
component.init({
array_option : [1,2,3],
});
</script>
我问的原因是我已经通过例子看到它并认为它有意义,但他们是否阅读了为什么这是一个好习惯?这是面向对象的Javascript吗?
如果 IS OO javascript,这种模式是否会使原型定义变得无用?
上述问题的答案
Javascript: Module Pattern vs Constructor/Prototype pattern?
答案 0 :(得分:8)
答案 1 :(得分:0)
这就是JS中的OOP。它的标准做法。
答案 2 :(得分:0)
这称为自调用(匿名)函数。 component返回一个具有init方法的对象,因此您可以将调用链接在一起。
答案 3 :(得分:0)
您可以在YUI Blog了解模块模式。