文字对象中的“ this”关键字

时间:2018-09-06 13:42:47

标签: javascript

我有以下代码。我希望 console.log(this.info)在浏览器控制台中打印 john 。但它显示undefined。有人可以告诉我为什么吗?

fmt = "_other_ext_@0@"
myTgt = fmt.format(file[0][0])

1 个答案:

答案 0 :(得分:3)

您必须绑定对象以指定this在其中工作的 context

secondObj.logger.bind(firstObj)

const firstObj = {
    info: "john",
    display: function (logger) {
        logger();
    }
}


const secondObj = {
    info: "mike",
    logger: function () {
        console.log(this.info); // logs undefind . but i expected to log john
    }
};


firstObj.display(secondObj.logger.bind(firstObj));