我有一個JavaScript類的函數:JavaScript類 - 訪問在飛行
MyClass = function(){
this.m_SomeData = 5;
};
,我已經創造了一些功能,該類:
MyClass.prototype.MyClassFunction_1 = function(arg){
// Some stuff that can return false
return true;
};
MyClass.prototype.MyClassFunction_2 = function(arg){
// Some stuff that can return false
return true;
};
MyClass.prototype.MyClassFunction_3 = function(arg){
// Some stuff that can return false
return true;
};
後來我創建的實例那個班。 (他們可以合併成一個單一的功能,但有設計問題,使它更好地分開它們):
var myInstance = new MyClass();
現在棘手的一點。在'if'聲明中,我正在執行以下操作(以及其他內容)。
var funcUse;
var arg = 3; // Some value created at run time)
if((funcUse = val === 0 ? MyClassFunction_1
: (val === 1 ? MyClassFunction_2 : MyClassFunction_3)) !== "undefined" &&
myInstance.funcUse(arg)){
}
顯而易見的問題是'if'語句MyClassFunction_?都是未定義的,因爲它們應該綁定到類的一個實例,例如myInstance.MyClassFunction_ ?.
那麼如何在if語句中做到這一點呢?
方法只是具有函數值的屬性。你也可以爲它們使用括號。 – Bergi
這不是一個類,這是一個功能。 – melpomene
嗨@Bergi,你能解釋一下你的意思嗎? (@melpomene - 這是您在javascipt中創建類的一種方法。) – Rewind