js之对象
一,对象的定义
对象是JavaScript的一个基本数据类型,是一种复合值,它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值。即属性的无序集合。
二,对象的创建
对象创建有三种方法:对象直接量/字面量、构造函数和Object.create
1,对象直接量/字面量
var obj = {name: 'lyl',age: 18} console.log(obj.name); // lyl
2,构造函数
使用new是将this指向构造的对象(不使用new则this指向window对象),js引擎在这一过程会执行两步隐式操作:
第一步:var this = Object.create(Peson.prototype); (this变成了原型为Peson.prototype,构造函数为Peson的对象)
第二步:return this;(创建的对象设置完所需属性后,将对象this通过return返回)
(1)new Object()
var obj = new Object(); obj.name = 'lyl'; console.log(obj.name); //lyl
(2)自定义构造函数
function Obj (name) {
this.name = name;
this.age = 18;
}
var obj = new Obj('lyl');
console.log(obj.name); //lyl
通过下面代码展现
Person.prototype = { say: function () { console.log('I am saying'); } } function Person () { // var this = Object.create(Person.prototype); this.name = 'lyl'; this.age = 18; // return this; } var person1 = new Person(); console.log(person1.name); // lyl person1.say(); //I am saying
3,Object.create(原型); 创建一个继承该原型的实例对象
三,对象的操作
1,对象的增
var obj = {}; console.log(obj.name); //undefined (不会报错) obj.name = 'lyl'; console.log(obj.name); // lyl
2,对象的删
var obj = { name : 'lyl' }; console.log(obj.name); //lyl delete obj.name; console.log(obj.name); //undefined
3,对象的改
var obj = { name: 'lyl' }; console.log(obj.name); // lyl obj.name = 'obj'; console.log(obj.name); // obj
4,对象的查
var obj = { name: 'lyl' }; // 第一种方法 console.log(obj['name']); //lyl // 第二种方法 console.log(obj.name); // lyl

浙公网安备 33010602011771号