调用React函数不起作用

时间:2017-09-11 02:43:17

标签: javascript jquery reactjs

我的代码如下,我希望我的结果是"你好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')
);

但是当我保存它时,返回的是&#34;你好先生&#34;,我在变量fullName中错了。

1 个答案:

答案 0 :(得分:2)

在您的代码中:

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

  

bind()方法创建一个新函数,当被调用时,它具有它   此关键字设置为提供的值,具有给定的序列   调用新函数时提供的任何参数。