美文网首页
js内置对象

js内置对象

作者: 王清水 | 来源:发表于2019-05-09 01:40 被阅读0次

在JavaScript中,一切都是对象或者可作为对象处理。

JavaScript内置对象:

    1,本地对象(通过new实例化的):Object、Array、Date、RegExp、Function、Boolean、Number、String等

     2,内置对象(自带,无需实例化):Global、Math、JSON

     3,宿主对象(环境提供的):Window、Document

JavaScript你日志错误处理的结构函数(与throw连用):

     1,Error()

     2,SynteaxError()

     3,TypeError()等

下面是对象所带来的一些思考:

通过字面量创建的对象在调用属性和方法时,会被对象包装期零食包装成一个对象,所以表现上是具有了对象一样的属性

上图带来了一个问题,以字面量形式构建对象和new形式构建对象的优劣是什么?表现在什么地方?具体的内部调用又有何区别?

JavaScript中的对象其实就键值对组成的散列表,即哈希表(简单理解就是通过了某种算法【散列函数*核心】将要检索的项和用于检索的索引关联起来,生成的一种便于搜索的数据结构),当然JavaScript中的散列表不存在所谓的散列冲突。对象的属性是随时可变的,我们不管定义的是字面量是内置对象还是仅仅一个“{ }”再添加各种属性,我们都建立了一系列的键值对。注意:就算我们创建了一个“{ }”对象,其实都会从Object.prototype继承属性,我们通常说的空,只是说没有自身的属性。

当我们使用Object()构造函数来创建对象的时候,解析器可能存在“从当前的作用域顺着作用域链直到Object()构造函数为止做查询”(考虑到你已经创建同名的构造函数),而字面量形式不需要做“作用域解析”的。new Object()/new Function()这样的操作都会去考虑这一点。

作用域链基本结构:

当前环境变量对象 >> 外部环境变量对象 >> ...... >> 全局环境变量对象

SwapName的作用域链:tempGirl>>anotherGirl>>gilr。而ChangeName的作用域链:anotherGirl>>girl。函数运行环境会向上搜索作用域链,请结合继承和闭包理解。

字面量形式优点1:


1,写法上字面量形式简易很多,想表达的属性也很清楚

字面量形式优点2(反证):

   

2,我们创建一个字符串类型的对象,它却自带了超级多的属性,且如果我们传入的其他内置对象呢?这个过程的判断是不是又将模糊不清。如果使用字面量形式,我们可以构建自己的构造函数,自己初始化自身或者链上的属性

字面量形式优点3:

3,构造函数只要返回类型是对象,并不一定是要遵循所谓的“构造函数执行时返回this指向的对象”,这里就返回了我们在构造函数中定义的新that。【实例化过程为1,先继承原型(非真正空的对象)2,创建构建自身的属性,即函数本身return,默认为return this】

new形式创建对象时防止缺失new关键字


如果我们,没有在构造函数内自定义返回对象,当我们像图中这样调用的时候,就可能顺着作用域链去查找全局的name属性了,这是我们不想看到的。

解决方法:

1,使用严格模式

2,在ECMAScript5中,这里的this不再指向全局对象哟,也可以使用上述的return that的办法,当然带来的问题是继承的全部丢失

3,先判断this是否是构造函数的实例,不是就直接return一个新的自身对象


上述解决方法2代码实例

最后,希望能寻得信仰!各位道友有错或者其他代码情况或者不懂得一定要说出来,大家一起进步啦!(写的有错的地方一定要和我说!万分感谢!)

相关文章

  • 1.4JavaScript 弹出框与内置对象

    消息框 JavaScript内置对象JavaScript对象 :1. js内置对象、js事件对象、3.BOM浏览器...

  • 内置对象

    js的内置对象 内置对的有11个,Global对象不列入内置对象。 js的数据类型 问:js中数据类型有哪些?st...

  • 原形和原形链

    JS里的内置对象 ...

  • JS数学对象Math、日期Date

    JS对象分为三种,分别是自定义对象、内置对象及浏览器对象。 内置对象就是JS语言自带的一些对象。 一、数学对象Ma...

  • JS内置对象

    JS内置对象分为两种: JS语言原生对象(语言级对象):String,Object,Function JS运行期的...

  • javascript 内置对象

    javascript 中的对象分为3种: 自定义对象、内置对象、浏览器对象; 内置对象: 就是JS自带的对象, ...

  • Javascript第四章内置函数、函数的基本用法第一课

    js的内置对象是js自带,封装了一些常用的方法,供开发者使用,可以无需创建对象直接使用。常用的js内置对象有:St...

  • 「JS」内置对象

    标准内置对象 ObjectObject.createObject.prototype.toStringObject...

  • JS内置对象

    什么是对象JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。对象...

  • JS内置对象

    mark相关的知识点: 首先,什么是js的内置对象,它包括了些什么内容?(以下内容转自网上资源的整合) (W3sh...

网友评论

      本文标题:js内置对象

      本文链接:https://www.haomeiwen.com/subject/evsvoqtx.html