2017-09-11 8 views
1

私は以下のコードを持っています。私の結果は "Hello Mr. John Doe"です。コールリアクション機能が動作しない

function formatname(name) { 
    return name.fullName; 
}; 

const name = { 
    firstName: 'John', 
    lastName: 'Doe', 
    fullName: function() { 
     return this.firstName + ' ' + this.lastName; 
    } 
}; 

const getName = (
    <h1>Hello Mr. {formatname(name)}</h1> 
); 

ReactDOM.render(
    getName, 
    document.getElementById('root') 
); 

しかし、私がそれを保存すると、 "Hello Mr."と表示されます。私は変数fullNameで間違っています。あなたのコードで

答えて

3

は:

const name = { 
    firstName: 'John', 
    lastName: 'Doe', 
    fullName: function() { 
     return this.firstName + ' ' + this.lastName; 
    } 
}; 

これはもう、あなたの変数名に参照されていません。解決するために、あなたが宣言された名前にこのバックをバインドする必要があります。

formatname(name).bind(name)() 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

バインド()メソッドは、呼び出され、新しい関数を作成し、その これを持っています新しいキーワードが指定された値に設定され、新しい関数が呼び出されたときに指定されたシーケンスの前に の引数があります。

+0

ありがとうございます。あなたは私に電話をしてもらえますか? "という意味ですか? – HungNguyen

+0

参照:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind bind()メソッドは、呼び出されたときにthisキーワードが指定された値に設定され、新しい関数が呼び出されたときに指定された引数のシーケンスが指定された値よりも前にある新しい関数を作成します。 –

関連する問題