JO2000 阅读(70) 评论(0)

非闭包实现

var MyObject = function() {
    // 私有变量
    var private_v1;
    // 私有方法
    function private_func() {}
    // 特权方法
    this.getName = function() {};
    this.setName = function() {};
    // 公有属性
    this.id = 200;
    // 公有方法
    this.public_func = function() {};
    // 构造器
    this.setName(name);
}
 
MyObject.prototype = {
    // 静态公有属性
    static_public_v1 : true,
    // 静态公有方法
    static_public_func : function() {}
};

闭包实现

var MyObject = (function() {
    // 静态私有变量
    var static_private_v1 = 0;
    // 静态私有方法
    function static_private_func() {}
    // 创建类
    function _myobject(id, name) {
        // 私有变量
        var private_v1;
        // 私有方法
        function private_func() {}
        // 特权方法
        this.getName = function() {};
        this.setName = function() {};
        // 公有属性
        this.id = 200;
        // 公有方法
        this.public_func = function() {};
        // 构造器
        this.setName(name);
    }
     
    // 构建原型
    _myobject.prototype = {
        // 静态公有属性
        static_public_v1 : true,
        // 静态公有方法
        static_public_func : function() {}
    };
     
    // 返回类
    return _myobject;
})();

实例化

var test = new MyObject();
test.static_public_func()

发表评论
切换编辑模式