无法设置未定义 4 的属性“大小”

Posted

技术标签:

【中文标题】无法设置未定义 4 的属性“大小”【英文标题】:Cannot set property 'size' of undefined 4 【发布时间】:2018-12-22 09:30:16 【问题描述】:

我是使用 node.js 的新手,我收到这些错误:

TypeError:无法设置未定义的属性“大小” 在对象。 (C:\Users\User\Documents\latihannode.js\javascript4\test\script 4.js:4:10) 在 Module._compile (internal/modules/cjs/loader.js:678:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:689:10) 在 Module.load (internal/modules/cjs/loader.js:589:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:528:12) 在 Function.Module._load (internal/modules/cjs/loader.js:520:3) 在 Function.Module.runMain (internal/modules/cjs/loader.js:719:10) 启动时(内部/bootstrap/node.js:228:19) 在 bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)

在通知中这是错误代码:

die.size = 10;

这是页面 script4.js 中的代码:

var dice = require('./dice');
var die = dice.die;

    die.size = 10;
    console.log(die.roll());
    console.log(die.roll());
    console.log(die.roll());
    console.log(die.totalRolls);

    console.log(die);

这是在页面 dice.js 中:

var die = 
  size: 6,
  totalRolls: 0,
  roll: function() 
    var result = Math.ceil(this.size * Math.random());
    this.totalRolls += 1;
    return result;
  
;


exports.game = die;
exports.name = "My dice exports";

【问题讨论】:

您检查过dice 是否为空吗? 问题是 die 是未定义的,正如它在错误消息中所说的那样。 dicedie 导出吗? 您的命名似乎是矛盾的:您正在尝试访问您不导出的东西 - 可能希望在进一步了解之前弄清楚。 我已经在 dice.js 中给出了 export die 但我认为需要 @torazaburo 今天骰子问题太多了。猜猜新学期开始了,班里的每个人都在问问题。该错误清楚地表明dice.die; 未定义。看看你的出口,你看死了吗?不,我看到游戏和名称。基本调试var dice = require('./dice'); console.log(dice); 【参考方案1】:

在这里更改:

var dice = require('./dice');
var die = dice.game; // not die.die

【讨论】:

以上是关于无法设置未定义 4 的属性“大小”的主要内容,如果未能解决你的问题,请参考以下文章

无法读取未定义的属性“参数”(React Router 4)

Vue-meta:无法设置未定义的属性“$meta”

反应音频无法设置未定义的属性“音量”

JavaScript - 无法设置未定义的属性

JavaScript - 无法设置未定义的属性

未捕获的类型错误:无法设置未定义的属性 [重复]