为什么javascript文字与非文字对应物的作用不同
Why do javascript literals act differently as their non-literal counterparts?
这是我一直认为理所当然的事情,但我想知道它的原因。
例如,我为什么可以这样做:
var a = new Number(1);
a.test = 'string';
console.log(a.test);
>>> 'string'
但当我做时
var a = 1;
a.test = 'string';
console.log(a.test)
>>> undefined
为什么他们的行为如此不同?
编辑:Andrea比我在这个线程中更好地表达了这个问题:Javascript基元类型和相应的对象
如果JavaScript检测到有人试图将属性分配给基元,它确实会将基元强制分配给对象。
https://javascriptweblog.wordpress.com/2010/09/27/the-secret-life-of-javascript-primitives/
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 添加文字和评论功能更新Div
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 将作用域存储在JSON中
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 对象文字方法上的Javascript绑定不起作用
- 如何创建作用域的动态、基于实例的对象文字
- 为什么javascript文字与非文字对应物的作用不同
- JS作用域中对象文字中的未定义变量
- 用变量值而不是文字遍历JSON树,使用NodeJS不起作用
- 为什么jQuery代码在使用对象文字组织后不起作用
- 文字对象函数作用域,如何传递函数&第三种情况