理解Javascript的对象

小天天天天    前端    788 次    2017-05-08 03:22:31


什么是对象?对象是属性无序集合。

对属性的理解:属性名+属性值 名值对

Js中的数据类型包括函数类型的(引用类型第一种)。

如果属性值是基本 数据类型或数组或对象本身,就是属性。

如果属性值是函数,这就是我们常说的方法。(看下图手册截图理解)

blob.png

Js是一种基于对象的语言。

js中,一切皆是对象。 

js中,对象的分类:

blob.png

其中内置对象是指ECMAScript的内置对象,也就是说在nodejsactionscript都是可以使用的。

 

而宿主对象则只能在浏览器中实现的中才可以实现。


Object对象

对象的本身我们使用Object来描述的。

而我们的数组和函数,是分别使用ArrayFunction来描述的。 

但是要注意,数组和函数其实也是对象,只不过他们比较特殊,Object的具体体现

Obejct-是抽象,而数组和函数是具体

可以举个栗子:Object-->地球人  而数组,函数 --- >中国人

创建Object对象有两种方式:1.直接量 2.构造器

blob.png


所谓直接量,也叫字面量,就是创建类型的一种最简单、直接的写法。如

var a = 5;   5就是整型的直接量

var b = ‘js’ ; js就是字符串的直接量

var c = true;   true是布尔值的直接量

var d = {}; {}就是对象的直接量

var f = function(){} ; 右边的整个就是函数直接量

var e  = [1,2,3] ; []就是数组的直接量


object的基本方法

ü  toString()

ü  valueOf()

ü  hasOwnProperty()

ü  propertyIsEnumerable()

ü  isPrototypeOf()

date对象

用来表示日期时间的。

通常需要new一个对象来,进行相关的一些操作。

blob.png

注意,parse是静态方法,直接使用Date构造器来引用的。

Parse也有兼容性问题,在火狐下有问题。


单体内置对象

也就是,不需要实例化对象,就可以直接使用的,意味着常驻内存

有两个单体内置对象:

ü  Math

ü  Global

单体内置对象的使用,是不需要实例化的。直接使用。

参照手册↓

blob.png

blob.png

以下是常用方法:

blob.png

 

Global表示全局对象

但是在中,是不能直接访问到Global的。

blob.png

但是,它的确是存在的。在浏览器端js,由Window来充当Global

中,全局所有定义的内容都是作为全局对象的属性来存在的。(就是window的属性)。

blob.png

包装对象

首先,看以下代码,看看对这个字符串都做了什么。。。

blob.png

如何解释呢?

暂且把这个疑惑放一边,再换一种方式,使用构造器来new一个字符串,然后进行相关的操作,如下:

blob.png

以上如何解释?与上上图测试的区别?

是这样的。。。。

实际上,在js中,有一个包装对象的用法。

虽然定义的时候,不是以对象的方式来定义的。

但是我们可以使用对象的属性和方法,

然而又不能够人为的添加属性和方法。

 

具体的过程(有对象的调用方式行为发生)如下:

ü  将普通的这个变量,作为参数,临时new一个对象。(装箱)

ü  使用临时对象,有自己的属性和方法,就就可以利用他们完成相应的操作 (操作)

ü  完成这个相应操作之后,立即销毁这个临时对象。(拆箱)

blob.png

js中,常见的有三个:

ü  字符串

ü  数值

ü  布尔

 

上述三种类型,每一种都有自己的构造器,分别是:

ü  String

ü  Number

ü  Boolean

然后,创建这些基本数据类型的时候,有两种方式:

ü  直接量

ü  构造器new的方式


自定义对象

两种方式:

ü  字面量(直接量)

ü  构造器new

 

举个栗子

blob.png











如果你觉得本篇文章对您有帮助,请打赏作者

最新评论

暂无评论
最新评论

网站数据

网站文章数:301

注册用户数:18

TOP