Javascript-在基元上获取和设置属性会隐式创建对象包装器

约翰·杜

我正在读一本书,名为《有效的JavaScript:利用JavaScript的力量的68种特定方法》,第4点更喜欢基元而不是对象包装,并且碰到了这句话。

在基元上获取和设置属性会隐式创建对象包装器

这会创建对象包装吗?

"hello".someProperty = 17;

编辑

如果以上语句创建了一个对象,请解释此行为。

var test = "foo";
test.bar = "new prop";
test.bar //this prints undefined.
哈桑·伊玛目(Hassan Imam)
"hello".someProperty = 17;

上面的语句确实创建了一个对象包装器,但是一旦完成其任务就将其丢弃。

var hello = 'Hello';
hello.someProperty = 17;
console.log(hello.someProperty);

这就解释了为什么尝试为基元分配属性不起作用,但是也不会引发错误。属性分配成功,但是该属性设置在包装对象上,该包装对象立即被销毁。因此,当您以后去查找该物业时,就什么也没有了。

在内部,this基本类型为object

String.prototype.thisType = function () {
    return typeof this;
};
var hello = "hello";

console.log(typeof hello);
console.log(hello.thisType());

在这里阅读更多

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在JavaScript中设置和获取布尔对象属性

javascript:隐式匹配两个 javascript 对象并创建一个对象

每个属性上的 Javascript 类设置器

使用Javascript设置和获取图像属性

获取和设置Javascript中的属性

从Javascript对象获取属性

javascript引擎如何在具有原型的对象上设置属性,而该对象具有该属性的设置器?

为什么要避免在JavaScript中创建基元对象?

定义Javascript对象的“隐式”方法

JavaScript中的隐式访问器?

在JavaScript中使用“ defineProperty”后,重置对象属性的获取/设置器

设置javascript对象的属性值

JavaScript对象设置/获取参数

如何在 javascript 对象上设置默认的 __self__ 属性

是否可以在javascript对象属性上设置图像源?

在javascript中创建对象数组,然后获取属性

JavaScript:获取对象的评估属性

Javascript获取对象属性值

JavaScript:获取对象属性值

Javascript获取对象属性名称

难度设置集中在javascript中新创建的对象上

如何为可构造的 JavaScript 对象上的属性创建陷阱

什么是JavaScript对象和属性?

从Javascript中的多维数组获取对象属性和方法

为什么构造函数会返回对象,而不返回JavaScript中的基元?

是否可以在Javascript对象上定义“全局” getter / setter方法,以便在获取/设置任何属性时调用它?

隐式扩展TypeScript中的JavaScript类属性

javascript中隐式对象字符串

如何创建一个可以访问函数及其对象的 JavaScript 包装器?