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

 

posted @ 2019-05-27 10:43  cxp虫小盼  阅读(127)  评论(0)    收藏  举报