什么是对象?对象是属性的无序集合。
对属性的理解:属性名+属性值 (名值对)
Js中的数据类型包括函数类型的(引用类型第一种)。
如果属性值是基本 数据类型或数组或对象本身,就是属性。
如果属性值是函数,这就是我们常说的方法。(看下图手册截图理解)
Js是一种基于对象的语言。
在js中,一切皆是对象。
在js中,对象的分类:
其中内置对象是指ECMAScript的内置对象,也就是说在、nodejs、actionscript都是可以使用的。
而宿主对象则只能在浏览器中实现的中才可以实现。
Object对象
对象的本身我们使用Object来描述的。
而我们的数组和函数,是分别使用Array和Function来描述的。
但是要注意,数组和函数其实也是对象,只不过他们比较特殊,是Object的具体体现。
Obejct-是抽象,而数组和函数是具体。
可以举个栗子:Object-->地球人 而数组,函数 --- >中国人
创建Object对象有两种方式:1.直接量 2.构造器
所谓直接量,也叫字面量,就是创建类型的一种最简单、直接的写法。如
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一个对象来,进行相关的一些操作。
注意,parse是静态方法,直接使用Date构造器来引用的。
Parse也有兼容性问题,在火狐下有问题。
单体内置对象
也就是,不需要实例化对象,就可以直接使用的,意味着常驻内存。
有两个单体内置对象:
ü Math
ü Global
单体内置对象的使用,是不需要实例化的。直接使用。
参照手册↓
以下是常用方法:
Global表示全局对象。
但是在中,是不能直接访问到Global的。
但是,它的确是存在的。在浏览器端的js中,由Window来充当Global。
在中,全局所有定义的内容都是作为全局对象的属性来存在的。(就是window的属性)。
包装对象
首先,看以下代码,看看对这个字符串都做了什么。。。
如何解释呢?
暂且把这个疑惑放一边,再换一种方式,使用构造器来new一个字符串,然后进行相关的操作,如下:
以上如何解释?与上上图测试的区别?
是这样的。。。。
实际上,在js中,有一个包装对象的用法。
虽然定义的时候,不是以对象的方式来定义的。
但是我们可以使用对象的属性和方法,
然而又不能够人为的添加属性和方法。
具体的过程(有对象的调用方式行为发生)如下:
ü 将普通的这个变量,作为参数,临时new一个对象。(装箱)
ü 使用临时对象,有自己的属性和方法,就就可以利用他们完成相应的操作 (操作)
ü 完成这个相应操作之后,立即销毁这个临时对象。(拆箱)
在js中,常见的有三个:
ü 字符串
ü 数值
ü 布尔
上述三种类型,每一种都有自己的构造器,分别是:
ü String
ü Number
ü Boolean
然后,创建这些基本数据类型的时候,有两种方式:
ü 直接量
ü 构造器new的方式
自定义对象
两种方式:
ü 字面量(直接量)
ü 构造器new
举个栗子