【发布时间】:2015-11-28 22:38:01
【问题描述】:
当像这样声明一个对象时:
var name= {
firsName:"nur",
lastName:"jaman",
fullName: function() {
return this.firsName + " " + this.lastName;
}
}
console.log(name.fullName());
它会抛出这个错误:
Uncaught TypeError: name.fullName is not a function
但是,使用任何其他变量名称(例如 var hello = ...)都可以正常工作。为什么?
【问题讨论】:
-
窗口对象有一个名为 name 的内置属性。您所有的全局名称都指向窗口,它是一个字符串。 console.log(window.name) 你会看到它是一个空字符串,你不能覆盖它
-
@Deepak 现在这个问题很有道理,这将是一个很好的答案。
-
@Luthando 1) 在短时间内,问题中的代码实际上 确实 工作得很好。 2) 如果你说它抛出错误,总是引用错误信息。它可能是一百万种不同的东西。仅凭这一点,反对票是合理的。
-
@LuthandoLoot 它被否决了,因为:没有提供错误消息 “它不起作用” 不是一个好的问题陈述。用户有变量
var hello = { ... }(当我查看它时),它工作正常并且没有问题。但由于这些问题已得到解决,这就是我们删除它们的原因。不是因为我们没有正确阅读问题。 -
@LuthandoLoot 绝对是一个有效的问题,当您编写大量原版 javascript 时!
标签: javascript