我相信我已经忽略了我正在做的事情。 我试图玩弄物体并玩得开心,但是我遇到了这个奇怪的错误。 我在C ++ / C#中使用了OO。

我创建了一个游戏环境对象,其中将包含有关该游戏的所有信息。

然后,我创建了一个验证工具(对象),该工具包含用于有效输入的正则表达式测试,在其中调用并传递然后返回测试结果。

然后使用这些对象创建一个launch(); 提示用户输入用户名并使用该工具进行验证的函数。 正是在这个电话中,我遇到了这个错误。

考虑到此错误,我不确定我在做什么在JS中合法。

 launch(); function launch() { var userNameInput = prompt("Please enter your name:", "User Name"); if (gameEnv.player(userNameInput)) { alert("Please enter only letters for a username."); location.reload(true); } } var gameEnv = { playerName: "", set player(input) { if (validationTool.LetterValidator(input)) { this.playerName = input; return 1; } else { return 0; } }, } var validationTool = { letterOnlyValidation: /^[a-zA-Z^\\s]+$/, LetterValidator: function(input) { return letterOnlyValidation.test(input); }, } 

#1楼 票数:1

首先,除非需要与旧版本的JavaScript兼容,否则ES6 JavaScript具有可用于OO的实际class声明。

即使使用旧版JS,创建类实例的方法还是使用function定义类,然后使用new创建新实例。

这里的特定代码存在问题:

var gameEnv = {
  playerName: "",
  set player(input) {
    if (validationTool.LetterValidator(input)) {
      this.playerName = input;
      return 1;
    } else {
      return 0;
    }
  },

}

...是您已使用setplayer定义了一个setter,但是没有getter,因此可以设置player,但不能将其读回。

另外,由于尚未使用new正确地将该对象作为类实例创建,因此this此处是指全局this ,而不是对象本身。

#2楼 票数:1

这里有几个问题:

  • set语法绑定对象属性,应使用=分配值。
  • 订单很重要

 var gameEnv = { playerName: "", set player(input) { if (validationTool.LetterValidator(input)) { this.playerName = input; alert("player name set"); } else { alert("Please enter only letters for a username."); } }, } var validationTool = { letterOnlyValidation: /^[a-zA-Z^\\s]+$/, LetterValidator: function(input) { return this.letterOnlyValidation.test(input); }, } launch(); function launch() { var userNameInput = prompt("Please enter your name:", "User Name"); gameEnv.player = userNameInput; } 

  ask by Robolisk translate from so

未解决问题?本站智能推荐:

3回复

JavaScript错误:无法读取未定义的属性“包含”

我想检查数组msgArr data.objectId已存在msgArr 。 为此我运行下面的代码: 该数组如下所示: 我收到以下错误: 无法读取未定义的属性“包含”
1回复

javascript中的类型错误:无法读取未定义的属性

我有一个像这样的javascript函数: 错误提示: 无法读取未定义的属性“ 5”。 我已经使用console.log语句进行了检查,并且上面的所有变量都在获取期望值。 我知道什么是Type Error,但不确定它在哪里中断。 **编辑:**这是完整的脚本:
1回复

JavaScript抛出“无法读取未定义的属性……”错误

我正在尝试构建一个基本的JQuery应用程序,该应用程序将从Flickr加载图像,将它们添加到jQuery对象数组中,依次将它们添加到DOM,使其淡入,并在3秒的周期内使其淡出。 但是,在我的displayImage函数中,我无法使用.hide()、. fadeIn()或.fadeOut(),
1回复

TypeError:无法读取未定义的javascript错误的属性“”[重复]

这个问题在这里已经有了答案: ES2015 类“不自动绑定”吗? (5 个回答) 5 个月前关闭。 所以我制作了一个解析器,当我尝试在我的解
1回复

无法读取JavaScript上未定义错误的属性“长度”

我在 JavaScript 中创建了一个 Typewrite 动画,但有一个问题,我的控制台在每次重置时都会向我抛出下一个错误:未捕获的类型错误:无法在 StartTextAnimation 读取未定义的属性“长度”。 我希望你能帮我在这里找到问题。 谢谢
2回复

JavaScript无法读取未定义错误的属性“classList”

我当时正在从事一个使用纯JavaScript制作滑块的个人项目。 但是js代码无法正常工作。 当我单击下一步按钮时,控制台将显示一个错误,提示Uncaught TypeError:无法读取未定义的属性'classList'。 与上一个按钮相同。 我已尽力而为,但找不到答案。 = J
1回复

JavaScript:类型错误:无法读取未定义的属性“0”

for 循环给了我一条错误消息“TypeError:无法读取未定义的属性‘0’”我该如何解决这个问题? const ticker = () => "msn"; // crypto price data for multiple crypto currencies function c
1回复

无法读取未定义的属性“长度”-JavaScript中的错误

我正在使用重现打字机效果的代码学习 html/css/js 中的动画。 一切正常,但我的控制台上不断出现此错误: 我尝试了在谷歌上找到的一些解决方案,但没有任何效果。 在我的 console.log(dataText) 中,数组中的每个字符串都被正确执行。 错误发生在循环执行的那一刻。 这是我现在正