Javascript对象概述

原文地址: http://www.cnblogs.com/hbzyin/p/7349727.html

相信前端开发人员对DOM、BOM对象都已经十分了解了,这些两个对象不仅是入门概念,也是日常开发中接触最多的概念;同时作为前端开发的必备知识之一的Javascript,由于其具有高度的灵活性,很多同学都是秉承遇到什么学什么的理念,一点点不断来完善自己的知识,这也是个人提高技术的必经途径之一;不过个人还是比较倾向于整体把握为指导,日常积累为手段的方式进行提高。
总之适合自己的方法,才是最好的方法。下面切入正题:

1. 全局对象

全局对象:在宿主环境中,其自身及其所有属性都可以在程序的任何地方、任何时间访问到的对象;如果全局对象有切仅有一个,全局对象同时也是根节点对象;

  • 根节点对象:所有属性、方法都挂载在根节点对象下,便于开发者进行属性、方法的查找;其缺点是调用繁琐;
  • 全局对象 :不同属性、方法都挂载在多个节点对象下,优点是调用方便快捷;缺点也是被Java语言所诟病的无序,使用时不知从何查找;

2.Javascript的全局对象

DOM、BOM对象现在的明星NodeJS都有一个唯一的全局对象,所有其他属性、方法都从属于该节点对象、或其子节点对象;如DOM的html、BOM的window、NodeJS的global
Javascript为了开发者使用的方便,将诸多方法、属性都设置为全局对象/属性,所以Javascript就没有所谓的唯一的根节点对象;
Javascript的全局对象根据是否依赖宿主环境分为两类:
- 核心对象:即ECMAScript Global Object,这些对象在程序执行前已经存在了(默认实例化);
- 宿主环境下的对象:宿主环境提供的全局对象/函数,常见的是浏览器设定并且限制开发者重写的,如:setTimeout、location等,

2.1. Javascript的核心全局对象:

序号 类别 栗子
1 值属性 NaN、Infinity、Undefined...
2 函数属性 eval()、parseInt()、isNaN()、decodeURI()....
3 构造器(类)属性 Object、Array、Function、String、Boolean、Number、Date、RegExp、Error、RangeError、SyntaxError...
4 其他(类似JAVA中静态类) Math、JSON...

2.2. 全局对象的读写性:

不管是Javascript的核心全局对象,还是宿主环境扩充的全局对象;开发者都可以随时调用;其不同之处在于:
1. ECMAScript中定义的核心全局对象是可重写,但不可枚举,即:Writeable=true,Enumerable=false
2. 宿主环境(主要是浏览器)设定的全局对象,一般是不允许重写的

---END

posted @ 2017-08-12 11:49  hbzyin  阅读(378)  评论(0编辑  收藏  举报