2016-05-08 9 views
-2

別のクラスからメソッドを実行するにはどうすればよいですか?それは明らかにそれが関数であると認識しているようではありません。私はクラスがオブジェクトであることを意味します。私がしたことは、それにアクセスしてその機能を呼び出すことだけでした。それで私は何が間違っていたのですか?ES6の別のクラスのメソッドを実行するJavascript

class test { 
    constructor() { 
    fooBar.worker(); 
    } 
} 

class fooBar extends test{ 
    worker() { 
    alert("Hello World"); 
    } 
} 

new test(); 
+0

アンチパターンのように見えます。機能が必要な場合は 'test'ではなく' fooBar'をインスタンス化してください。 – Emissary

+0

worker()はプロトタイプメソッドではありませんか? fooBar自体のメソッドではありません。 – nnnnnn

答えて

1

あなたの問題はfooBar.worker()thisを使用して静的メソッドまたは参照する必要があるということです。

あなたがそれを呼び出す方法では、worker関数を静的にする必要があります。

+0

私はこれを試しました。私はそれを言及する必要がありますが、私はいつも私はアイデアを捨てた理由は、エラーがあります:行方不明:プロパティIDの後。スタティックはうまく動作します! – Asperger

+0

私は助けてくれると嬉しいです。回答を受け入れることを自由に感じてください:) – Cludch

+0

確かに、私は2分で答えることができると言います。しかし、少し質問。すみません、私はJava OOから来ています。スーパークラスからの変数へのアクセスはこれで動作しません。右?ちょっと私のコードを少し拡張しました:https://jsfiddle.net/zuqrp1hb/ – Asperger

関連する問題