JavaScript Object 对象 再解(一)
Object 是 JavaScript 中最复杂的类型,也是平时我们开发当中用的最多的。
JavaScript我们用到最多的对象,有下面这么几个
Number
String
Boolean
Symbol(稍微少一点啦)
事实上,JavaScript 的’类’仅仅是运行时对象的一个私有属性,而 JavaScript 中是无 法自定义类型的。
3 与 new Number(3) 是完全不同的
3 ‘3‘ new Number(3) s ‘s‘ new String(s) true false new Boolean(true) new Boolean(false)
Number、String 和 Boolean,三个构造器是两用的,当跟 new 搭配时,它们产生对 象,当直接调用时,它们表示强制类型转换。
Symbol 函数比较特殊,直接用 new 调用它会抛出错误,但它仍然是 Symbol 对象的构 造器。
JavaScript 语言设计上试图模糊对象和基本类型之间的关系, 我们日常代码可以把对象的 方法在基本类型上使用,比如:
console.log(‘hello‘.charAt(3)) console.log(‘hello‘.charCodeAt(3)) String.fromCharCodeAt(‘hello‘.charCodeAt(3))
甚至我们在原型上添加方法,都可以应用于基本类型,比如以下代码,在 Symbol 原型上 添加了 hello 方法,在任何 Symbol 类型变量都可以调用。
Symbol.prototype.hello = () => console.log("hello") var a = Symbol("a") console.log(typeof a) a.hello()
然后,有个问题,问题是:为什么给对象添加的方法能用在基本类型上?
答案就是: . 运算符的功劳。 该运算符提供了装箱操作,它会根据我们使用的基本类型构造一个临时的对象,使得我们能够在基础类型上调用该对应对象的方法。
相关推荐
nmgxzm00 2020-11-10
ifconfig 2020-10-14
hhanbj 2020-11-17
zfszhangyuan 2020-11-16
古叶峰 2020-11-16
一个智障 2020-11-15
jipengx 2020-11-12
81427005 2020-11-11
xixixi 2020-11-11
游走的豚鼠君 2020-11-10
苗疆三刀的随手记 2020-11-10
Web卓不凡 2020-11-03
小飞侠V 2020-11-02
帕尼尼 2020-10-30
爱读书的旅行者 2020-10-26
帕尼尼 2020-10-23
杏仁技术站 2020-10-23
淼寒儿 2020-10-22