首页 > 解决方案 > 在 javascript 对象字面量中访问“this”

问题描述

我试图让这段代码工作,但无法弄清楚为什么myInvoice.amount评估为NaN.

我最初认为它与 的值有关this,但如果是这种情况,为什么 myInvoice.total() 工作正常?

function createInvoice(services = {}) {
  return {
    phone: services['phone'] || 3000,
    internet: services['internet'] || 5500,
    amount: (this.phone + this.internet),

    total() {
      return this.phone + this.internet;
    },

  };
}

let myInvoice = createInvoice(); 
console.log(myInvoice.phone); // 3000
console.log(myInvoice.internet); // 5500
console.log(myInvoice.amount); // NaN
console.log(myInvoice.total()); // //8500

我还检查了 typeofphoneinternet它们都是数字。我还在表达式旁边的注释中包含了记录到控制台的内容。

任何帮助,将不胜感激!

谢谢

标签: javascriptobjectoopthis

解决方案


推荐阅读