2016-04-28 2 views
0

インスタンスを呼び出すときにJSにデフォルトメソッドを実行する方法がありますか?クラスのデフォルトメソッド

例:のは、私は、私は、私は私が呼ぶときfooMyClassdefaultメソッドを実行することを望んfooという名前のこのクラスのインスタンスを起動し、MyClassという名前の次のクラスを持っていると仮定しましょう。

class MyClass { 
    constructor() { 
    this.props = { 
     question: 'live, universe, everything', 
     answer: 42 
    } 
    } 

    default() { 
    return this.props 
    } 

    hello() { 
    return 'hello world' 
    } 
} 
const foo = new MyClass() 

// execute the default method 
console.log(foo) // log: {question: 'live, universe, everything', answer: 42} 

// execute hello method 
console.log(foo.hello()) // log: hello world 
+0

をこのような機能を持っていますが、私よりも仕様に精通した人が私を間違っているかもしれません。つまり、本当に 'foo.props'と書くのはずっと面倒ですか? –

+0

ユースケースは何ですか? –

+1

私は混乱しています。あなたが 'foo'をオブジェクトとして、' foo'を 'MyClass'のインスタンスにしたいときは、どのように知っていますか? 'props'に' hello() 'メソッドが含まれているとどうなりますか? – CodingIntrigue

答えて

3

オブジェクトがconstructorでインスタンス化するときに呼び出され、デフォルトの方法。次のコードは有効ですので、あなたはコンストラクタからあなたが望むものは何でも返すことができますES6で

class MyClass { 
     constructor() { 
       var instance = { 
        question: 'live, universe, everything', 
        answer: 42, 
        hello:() => { return 'hello world' } 
       } 
       return instance; 
     } 
    } 

あなたは、このようなオブジェクトインスタンス化できます:私はJavaScriptを信じない

var foo = new MyClass(); 
foo.hello(); //Hello world 
console.log(foo.question); //live, universe, everything 
console.log(foo.answer); //42 
+0

これは私が望んだものです!どうもありがとうございます! – Rog

関連する問題