Javascript 在另一个类中使用一个类
在我的项目中,我将所有常用方法保存在一个文件中,并将其类命名为Javascript 在另一个类中使用一个类,javascript,class,prototype,Javascript,Class,Prototype,在我的项目中,我将所有常用方法保存在一个文件中,并将其类命名为SandBox。我正在中加载此文件 现在我需要在另一个特定于页面的类中使用这个SandBox类。类名为Homeclass。我正在加载这个主页类,就在上面 我应该如何在Homeclass中使用SandBoxclass 我在我的Home类中尝试了以下方法,在这里我只能在initialize属性中访问SandBox类的方法,但我需要在Home类的所有方法中访问它,而不必在每个方法中重复声明为new SandBox() var PdClick
SandBox
。我正在
中加载此文件
现在我需要在另一个特定于页面的类中使用这个SandBox
类。类名为Home
class。我正在加载这个主页
类,就在
上面
我应该如何在Home
class中使用SandBox
class
我在我的Home
类中尝试了以下方法,在这里我只能在initialize
属性中访问SandBox
类的方法,但我需要在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:我不认为在Home
类的每个方法中声明new SandBox()
(正如我在上面的initialize中所做的那样)是有效的
var sb = //etc
你想做什么
this._sb = //etc
那么你可以参考
this._sb
下划线通常在js中用作私有值的约定。下面是一个对象属性的示例
function PdClicksClass() {
/* other class stuff here */
this.sb = new Sandbox();
}
PdClicksClass.prototype = {
getSandbox : function() {
return this.sb;
}
}
或者,如果封装不是问题,只需通过
PdClicksClass.sb
调用它,您的代码有什么问题?为什么你认为新的沙盒不“有效”(不管在这个上下文中是什么意思)?@FelixKling没问题。。但是我需要在我的主页
类中访问与沙盒
类相关的方法new SandBox
很有效,但在Home
类的所有方法中反复使用它并不好。必须有一些替代方法。如果要在另一个方法中访问sb
,必须将其声明为对象的属性,而不是局部变量。如果您希望每个PdClicksClass
实例都有自己的SandBox
实例,那么这就是您必须做的。可能有一个方法返回sb
?那就从家里的课堂上打电话<代码>var derp=PdClicksClass.getSandBox()代码>更好的方法是使用obj属性though@FelixKling哦。。然后我需要在所有方法中将它用作this.sb
,好吗?