JavaScript对象

创建对象

通过对象自面量的形式创建对象

var obj={};  
var obj1={x:1, y:2, z:3};  
var obj2={
    'x': 1,
    'y': 2,
    username: 'king',
    'for': 'JS中的关键字必须放在引号之间'
};

使用new object创建对象

var obj3 = new Object();
var arr = new Array();
var data = new Data();
var reg = new RegExp('js');

使用构造函数创建对象

function Test1(num1, num2){
    this.n1 = num1;
    this.n2 = num2;
}
var obj = new Test1(5,6);

使用Object.create()创建对象

var obj6 = Object.create({x:1});   // 继承自{x:1}
var obj7 = Object.create(null);

// 创建一个普通的空对象
var obj8 = Object.create(Object.prototype);

操作对象

首先创建两个对象

//使用对象字面量的方法构造对象
var person={
    username: 'zhang',
    age:12,
    addr:'北京',
    salary: 1234.56,
    sex: '男',
    sayHi:function(){
        return 'say hi';
    }
};

// 使用构造函数的方法添加对象
function PersonInfo(name, age, sex){
    this.name = name,
    this.age = age,
    this.sex = sex,
    this.info = function(){
        return 'info';
    }
};

var person=new PersonInfo('zhang', 20, '男');

访问属性:
对象名.属性名
对象名[属性名]
当处于某个对象方法内部的时候,可是使用this来访问同一对象的属性
var key='username';
person.key 等量代换?不存在的,会显示未定义
属性不确定的时候,只能使用[]的形式

添加属性:
对象名.属性名 = 值
对象名[属性名] = 值

修改属性:
对象名.属性名 = 值
对象名[属性名] = 值

删除属性:
delete 对象名.属性名
delete 对象名[属性名]
注意:
delete只能删除自身的属性,不能删除继承的属性
要删除继承的属性,只能从定义它属性的原型对象上删除,这户影响到所有的对象
delete只是断开属性和宿主对象的联系,而不会去操作属性的属性
delete不能删除那些可配置型为false的属性

遍历属性:
for in 遍历属性

访问方法:
对象名.方法名()
注意:
如果对象名.方法名的形式就会返回定义函数的字符串

posted @ 2017-10-09 20:18  cnkai  阅读(278)  评论(0编辑  收藏  举报