对象
内置对象: 引擎初始化阶段就被创建好的对象。
原生对象 : 除了内置对象,还包括一些在运行过程中动态创建的对象
原生对象
ecma-262 把 原生对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象” 包括一下几点:
global
Object
Function
Array
String
Boolean
Number
Date
RegExp
Error EvalError
RangeError
ReferenceError
syntaxError、
TypeError、
URIError、
ActiveXObject(服务器方面)、
Enumerator(集合遍历类)、
RegExp(正则表达式)内置对象(不需要 New)
一个内置的构造器函数是一个内置的对象,也是一个构造函数 常见的有
对象的扩展
js 原生对象的复制和扩展
Object.setPrototypeOf()
Object.setPrototypeOf() 方法设置一个指定的对象的原型 (即, 内部[[Prototype]]属性)到另一个对象或 null。
不建议这么使用 建议使用 objcet.create()来创建带有你想要的[[prototyp]] 的新对象
Object.setPrototypeOf()是 ECMAScript 6 最新草案中的方法,相对于 Object.prototype.proto ,它被认为是修改对象原型更合适的方法
所有的对象都具有 toLocaleString()、toString()和 valueOf()方法。因为所有的对象都继承自 Object, 而前面所说的方法都是 Object 的方法!
toString 方法返回每个值的字符串形式 拼接成了一个字符串,中间用逗号隔开 valueOf() 返回的还是数组的字符串形式
第三行 alert()要接收字符串参数,而第三行传给 alert 是一个数组,所以 alert 会在后台调用 toString 方法,输出数组的字符串类型
二者共同的缺点 无法获取 null 和 undefined 的值
用途的区别 tostring() 用于输出字符串 valueOf()用于算术计算和关系运算
返回值类型的差别 toString 一定将所有内容转为字符串 valueOf 取出对象内部的值, 不进行类型转换。
冷知识: new Object 产生的实例对象是各个类型 Array Number //虽然用法相似,但是 Object(value)与 new Object(value)两者的语义是不同的,Object(value)表示将 value 转成一个对象,new Object(value)则表示新生成一个对象,它的值是 value。
最后更新于
这有帮助吗?