私はクラス内で値を設定する関数を持っています。私はクラス内とクラス外からこの関数を実行する必要があります。クラスと外部クラスで関数を実行
この関数はstate(val)
と呼ばれます。私の知る限り、名前の前にfunction
を追加する必要はありません。
state is not defined
を言ってエラーになっ
は私のコード
// Menu control object
class menuControl {
constructor(obj, children, items) {
this.children = children;
this.elm = obj;
this.state = 0;
}
state(val) {
this.state = val;
for(var index in controls) {
if (index !== not) {
addClass(controls[index].elm, 'disabled');
} else {
removeClass(controls[not].elm, 'disabled');
}
if (this.state === 0) {
removeClass(controls[index].elm, 'disabled');
}
}
}
toggle() {
// MENU ACTIVE
if (this.state === 0) {
for(var i in this.children) {
// Add required classes
if (this.children[i][1] === 1) {
addClass(this.children[i][0], 'toggled');
} else {
removeClass(this.children[i][0], 'toggled');
}
}
this.state(1); // Toggle the state
} else {
// MENU INACTIVE
for(var i in this.children) {
removeClass(this.children[i][0], 'toggled');
}
this.state(0); // Toggle the state
}
}
}
更新あなたは二回状態を定義している
// Menu control object
class menuControl {
constructor(obj, children, items) {
this.children = children;
this.elm = obj;
this.state = 0;
}
setState(val) {
this.state = val;
for(var index in controls) {
if (index !== not) {
addClass(controls[index].elm, 'disabled');
} else {
removeClass(controls[not].elm, 'disabled');
}
if (this.state === 0) {
removeClass(controls[index].elm, 'disabled');
}
}
}
toggle() {
// MENU ACTIVE
if (this.state === 0) {
for(var i in this.children) {
// Add required classes
if (this.children[i][1] === 1) {
addClass(this.children[i][0], 'toggled');
} else {
removeClass(this.children[i][0], 'toggled');
}
}
setState(1); // Toggle the state <--------- Get the error here
} else {
// MENU INACTIVE
for(var i in this.children) {
removeClass(this.children[i][0], 'toggled');
}
setState(0); // Toggle the state
}
}
}
「state」という名前のメソッドとプロパティがあります。コンストラクタでは、(継承された)メソッドをプロパティで上書きします。 – Thomas
私は前にsetStateメソッドに名前を付けましたが、エラーが発生しました: 'setStateが定義されていません' @Thomas –
あなたはそのコードを表示できますか? – Thomas