Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';在javascript对象上设置属性_Javascript_Node.js - Fatal编程技术网

Can';在javascript对象上设置属性

Can';在javascript对象上设置属性,javascript,node.js,Javascript,Node.js,全部要点: Self是一个js模型,其中包含所有方法 Moodboard.prototype = { 守则: var self = this; self.isArchived = true; self.foo = true; console.log('is archived property', self.isArchived); console.log('self object', self); return self.

全部要点:

Self是一个js模型,其中包含所有方法

Moodboard.prototype = {
守则:

      var self = this;
      self.isArchived = true;
      self.foo = true;
      console.log('is archived property', self.isArchived);
      console.log('self object', self);
      return self.save();
此代码的结果:(注意设置了self.foo)

[truestandalone
isArchived
property,但
false
property-inside-object][1]“>

为什么在设置self.foo时self.isArchived没有被设置

另外,为什么在执行object.property时设置它,而在仅记录对象时不设置它

TLDR;


Console.log()是异步的。在我的屏幕截图中,它显示了设置为我想要的属性。当您展开Console.log()时,它似乎“重新触发”事件并可以获得不同的值。这是因为save()方法也是异步的,并操作原始对象。

问题源于console.log是异步的:当您记录self对象时,只记录一个引用,当您单击它时,它会被评估

注意您的:在控制台消息(未打开状态)的第一行中,
isArchived
如预期的那样是
true
。只有当您手动打开它以进一步检查时,它才会被列为
false
。可能在日志记录和手动打开之间有其他东西在修改它


(我敢打赌,如果您直接记录self.isArchived,您将不会看到这种行为,因为它是一个将立即打印的基本值。)

问题源于console.log是异步的:当您记录self对象时,只会记录一个引用,当您单击它时会对其进行计算

注意您的:在控制台消息(未打开状态)的第一行中,
isArchived
如预期的那样是
true
。只有当您手动打开它以进一步检查时,它才会被列为
false
。可能在日志记录和手动打开之间有其他东西在修改它


(我打赌,如果您直接登录self.isArchived,您不会看到这种行为,因为它是一个将立即打印的原始值。)
.isArchived
显示为false。因此必须设置它。我们还应该看到更多的代码吗?
isArchived
可能是受保护的属性。有关属性的更多信息请注意,
isArchived
在屏幕截图中对象的单行表示中显示为
true
。Moodboard后面的行显示
>IsArrchived:true
请查看编辑。上载了完整的要点
。IsArrchived
显示为false。因此必须进行设置。还有更多代码需要查看吗?
IsArrchived
可能是受保护的属性。有关属性的更多信息请注意,
IsArrchived
在您的对象的单行表示中显示为
true
r屏幕截图…Moodboard后的一行显示
isArchived:true
请查看编辑。上载完整注册表可能是因为您正在更改isArchived,保存()函数?所以我注释掉了save方法,并正确设置了它。它一定在那里。我上传了完整的要点。你现在应该可以看到它了。也许你正在更改save()中的isArchived函数?所以我注释掉了save方法,它被正确设置。它一定是在那里。我上传了一个完整的要点。你现在应该可以看到它了。