首页 > 解决方案 > 当我在对象内定义属性时,为什么我的 JavaScript 代码给出了引用错误?

问题描述

我是 javascript 和学习对象的初学者。当我运行 initializeDeck 方法时,我收到一个参考错误,指出未定义值/套装。但是,我认为我适当地使用了 this 关键字来访问对象属性。如果有人可以向我解释这一点,那将非常有帮助。

const myDeck = {
  deck : [],
  suits : ["hearts", "diamonds", "spades", "clubs"],
  values : "2,3,4,5,6,7,8,9,10,J,Q,K,A",
  
  initializeDeck : function() {
    this.values = values;
    this.suits = suits;
}}
console.log(myDeck.initializeDeck());

标签: javascriptjson

解决方案


您的函数initializeDeck应该采用一些参数,例如valuessuits。上面你正在调用一个没有参数的函数,并试图将一些字段设置为不存在的局部变量。

而是试试这个

const myDeck = {
  deck : [],
  suits : ["hearts", "diamonds", "spades", "clubs"],
  values : "2,3,4,5,6,7,8,9,10,J,Q,K,A",
  
  initializeDeck : function(values, suits) {
    this.values = values;
    this.suits = suits;
}}
console.log(myDeck.initializeDeck(<someValues>, <someSuits>));

推荐阅读