对象文字中的箭头函数无法访问该对象的值

时间:2019-06-17 04:35:42

标签: javascript

在访问功能或箭头函数内的值时,代码给出以下错误:

  

未捕获的ReferenceError:未定义诉讼           在Object.toString(VM378 script.js:4)           在VM429 script.js:7

let card = {
  suit : "Spades",
  value : "Queen",
  toString : () => suit + " of " + card
};

console.log(card.toString());

1 个答案:

答案 0 :(得分:1)

在这种情况下,您必须使用card变量,如下所示:

let card = {
  suit : "Spades",
  value : "Queen",
  toString : () => card.suit + " of " + card.value
};

console.log(card.toString());

之所以会发生这种情况,是因为箭头功能将采用当前上下文(this),而您将无法执行this.suit。但是,如果使用function语法,则可以执行以下操作:

let card = {
  suit : "Spades",
  value : "Queen",
  toString : function () { return this.suit + " of " + this.value }
};

console.log(card.toString());