创建对象
通过对象自面量的形式创建对象
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 遍历属性
访问方法:
对象名.方法名()
注意:
如果对象名.方法名的形式就会返回定义函数的字符串