以下是我对js中对象的一些理解 ,简述了 什么是对象 , 对象的创建, 使用 以及其属性。
js对象是j's的基本数据类型, js中的对象是动态的, 可以新增属性,也可以删除属性。
对象中最常用的用法是创建(create),设置(set),查找(query),删除(delete),检查(test),枚举(enumerate)。
一. js中的对象具有三类对象两类属性:
内置对象:是由ECMAScript规范定义的对象或类。例如:数组, 日期,函数,和正则表达式都是内置对象。
宿主对象:由js解释器所嵌入的宿主环境(比如web浏览器)定义的。那么宿主对象也可以当成内置对象。
自定义对象:是由运行中的js的代码所创建的对象。
自有属性:是直接在对象中定义的属性。
继承属性:是在对象的原型对象中定义的属性。
二. 对象的创建的三种方法:直接量方法, new关键方法, Object.create()
1.直接量方法:
var object = {};//创建一个空的对象,该对象继承object.prototype
2.new关键字方法
var object = new Object();//用new关键字创建的空对象, 同样继承object.prototype
var data = new Date()://继承Date.prototype
Date.prototype继承object.prototype, 而data同时继承Date.prototype和object.prototype,这就够成了“原型链”。
3.object.create()
var object = Object.create({x:1,y:2});//创建的object对象继承了x y属性
var object1=Object.create(Object.prototype);//创建了一个空的对象
三.对象属性的访问和设置的两种方法, 以及二者的区别:
1. 通过对象名"."来访问或设置:
var name = object["name"];
2.通过“[]”来访问或设置:
var name = object.name;
以上两种方式都可以; 但是我们推荐使用"[]",当对象的属性为关键字时, 使用“[]”不会报错, 例如object[“class”];
当我们需要动态改变属性例如在程序中修改属性时可以使用“[]”因为这种写法访问属性时, 他是使用的字符串形式:如下
for(var i = 0; i<5;i++){
var add ;
add += object["name"+i];
}
四 对象的继承;
对象的属性可以继承;当我们修改对象的某个属性, 而这个属性已经从原型上继承了, 我们只会修改该对象的属性, 而不是原型上的属性。