用于OOP的javascript命名空间和模式

时间:2014-10-24 15:33:43

标签: javascript

我想尝试面向对象的js,我想知道哪种方法在我尝试的两种方法中更好,为什么它更好请解释一下,如果还有其他更好的方法请建议我。

// Approch 1
var thisPage;
abc.forgotPassword = {
    init: function() {
        'use strict';
        thisPage.forgotPasswordFunctionality();
    },
    forgotPasswordFunctionality: function() {
        //some code
    }
};
$(function() {
    thisPage = abc.forgotPassword;
    thisPage.init();
});


// Approch 2
abc.forgotPassword = {
    init: function() {
        'use strict';
        abc.forgotPassword.forgotPasswordFunctionality();
    },
    forgotPasswordFunctionality: function() {
        //some code
    }
};
$(function() {
    abc.forgotPassword.init();
});

1 个答案:

答案 0 :(得分:1)

这不是真正面向对象的Javascript-你只是将函数存储在一个对象中。

如果您想使其更加面向对象,请执行以下操作:

abc.ForgotPasswordHelper = function() {
    this.init = function() { ... }
    this.forgotPasswordFunctionality = function() { ... }
}

var helper = new abc.ForgotPasswordHelper();
helper.init();