我想知道创建一个具有属性和方法的JavaScript对象的最佳方法是什么.
我已经看到了这个人在所有函数中使用var self = this然后使用的示例,self.以确保范围始终正确.
然后我看到了使用.prototype添加属性的示例,而其他人则使用内联方式.
有人可以给我一个具有一些属性和方法的JavaScript对象的正确示例吗?
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吗?
如果这是 OO javascript,这种模式是否会使原型定义变得无用?
对上述问题的答案很好