在另一个类中使用一个类

时间:2013-12-01 07:19:56

标签: javascript class prototype

在我的项目中,我将所有常用方法保存在文件中,并将其命名为SandBox。我在<head>

中加载此文件

现在我需要在另一个特定于页面的类中使用这个SandBox类。类名是Home类。我正在Home上面加载此</body>课程。

我应该如何在SandBox课程中使用Home课程?

我在Home课程中尝试了以下操作,我只能在SandBox属性中访问initialize类的方法,但我需要在Home的所有方法中访问它不在每种方法中重复声明为new SandBox()的类。

var PdClicksClass = Class.create();
PdClicksClass.prototype = {
    initialize : function(){
        var sb = new SandBox();
        sb.attachEvents(/* some arguments here */);
    },
    toggleReviewSection : function(e){
        //SandBox class methods should also use here
    },
    openImagePopup: function(e){
        //SandBox class methods should also use here    
    }
};

var projectDetails = new PdClicksClass();

PS:我不认为在new SandBox()类的每个方法中声明Home,就像我在上面的初始化中所做的那样)一个虽然。

2 个答案:

答案 0 :(得分:1)

而不是

var sb = //etc

你想做

this._sb = //etc

然后你可以参考

this._sb

下划线经常在js中用作私有值的约定。

答案 1 :(得分:1)

以下是我将执行此操作的对象属性的示例

function PdClicksClass() {
    /* other class stuff here */
    this.sb = new Sandbox();
}

PdClicksClass.prototype = {
    getSandbox : function() {
        return this.sb;
    }
}

如果封装不是问题,只需通过PdClicksClass.sb

调用即可