我是node.js的初学者,我正在尝试以下代码。
abc = function add( x, y) {
return x + y
}
abc.A = "I am a string"
abc.B = 29
console.log( "abc is \n", abc, "\n and typeof ABC is ", typeof abc)
console.log( "abc.A is '"+ abc['A'] + "' and abc.B is", abc['B'] )
此代码的输出是
abc is
function add( x, y) {
return x + y
}
and typeof ABC is function
abc.A is 'I am a string' and abc.B is 29
但是,如果我在开头将abc定义为数字
abc = 459
abc.A = "I am a string"
console.log( abc['A'] )
然后输出
undefined
有人可以解释为什么第一个代码工作正常,但第二个代码没有?
答案 0 :(得分:2)
根据您的q的第2部分,您无法为文字值指定新属性,但您可以执行var a = new Number(100)
然后执行a.prop='whatever'
并仍然可以访问。
答案 1 :(得分:0)
在JavaScript中,函数是对象,因此您可以向它们添加属性,就像您创建了:
{{1}}
数字,字符串,布尔值是原语,不能添加属性。这就是为什么你不能将属性分配给数字。