您的位置:首页 > Web前端 > JavaScript

【JavaScript面向对象编程】20160104(对象)

2016-01-04 20:18 405 查看
1、var o = {prop: 1};

var o = {‘prop’: 1};

var o = {“prop”: 1};

上面三个定义的内容是完全相同的,通常属性名不加引号,但不符合js命名规则的必须添加引号;

2、在一般性程序设计语言中,通常存在两种不同的数组形式:

1)一般性(索引型/枚举型)数组:通常以数字为键值;

2)关联型数组/哈希表:通常以字符串为键值;

在JavaScript中,我们会用数组来表示索引型数组 ,用对象表示关联型数组。因此,如果我们想在JavaScript中使用哈希表,就必须要用到对象。

3、【访问对象属性】

1)中括号 eg:hh[‘aa’]

如果要访问的属性名不确定,必须使用中括号访问,它允许我们在运行时通过变量来实现相关属性的动态存取;

2)点号 eg :hh.aa

一般适用

3)【this】当我们处于某个对象方法内部时,可以this.属性名调用

4、【构造器函数 new 】 传参

1) 我们可以通过构造器函数 constructor function,的方式创建对象。

2)依照惯例,我们将构造器函数的首字母大写,以便区分于其他一般函数。

3)不要忽略 new操作符,是的,在JavaScript中它叫操作符。忽略new时,内部的this调用的是全局对象,且此时所有的属性设置都是针对全局对象的

4)当我们创建对象时,同时也赋予了该对象一种特殊的属性—-构造器属性(constructor property)。该属性实际上是一个 指向用于创建该对象的构造器函数的引用。

5、【全局对象】

1)真相只有一个:程序所在的宿主环境一般都会为其提供一个全局对象,而所谓的全局变量其实不过是该对象的属性罢了。

6、【instanceof】:测试一个对象是不是由某个特定的构造器函数所创建的。测试时函数名后无需加括号

7、【传递对象】

我们在引用上做的任何改动,都会影响他所引用的原对象

var oo = {h:1};
var cc = oo;
cc.h;
>>>1
cc.h = 2222;
oo.h;
>>> 2222


8、【内建对象】

1)数据封装类对象:Object,Array,Boolean,Number,String

代表着JavaScript中不同的数据类型,并有各自不同的typeof返回值,undefined,null状态

2)工具类对象:Math ,Date,RegExp

3)错误类对象:包括一般性错误对象以及其他各种更特殊的错误类对象

【Object】

1)object是JavaScript中所有对象的父级对象

var o = {};

var o = new Object();是等价的

2)即便是所谓的空对象,也不是完全无用的,还是包含了一些属性和方法:返回构造器函数的构造器属性、toString()、返回对象单值描述信息 的valueOf()一般返回的就是对象本身

【Array】

1)Array()是一个用来构建数组的内建构造器函数。

var a = new Array();

var a = [];是等效的

2)一种异常情况,var aa = new Array(5); 5会被认为是数组长度

3)数组也是对象,但有其特殊之处:属性名从0开始递增,并自动生成数值;拥有记录元素数量的length属性;是在Object的基础上扩展额外的内建方法

4)值得关注的数组方法
push():在数组末端添加一个新元素,push(new),返回改变后数组长度;
pop():移除数组最后一个元素,返回被移除的元素;
sort():排序,返回排序后数组;
join():返回一个由目标数组中所有元素值连接而成的字符串,可在括号内设置连接值;
slice():在不改变目标数组的前提下返回其中某个片段,该片段的首尾索引位置有slice(index1,index2);
splice():会修改目标数组,它移除并返回指定切片,可指定新元素填补被切除的空缺,splice(index1,index2,new,new,,,);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: