在javascript中学习OO:错误 - 无法读取未定义的属性

我相信我忽略了我正在做的事情。我试图玩弄对象并获得一些乐趣,但我遇到了这个奇怪的错误。我在 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);

  },

}


慕雪6442864
浏览 192回答 2
2回答

MMMHUHU

这里有几个问题: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;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript