创建对象的方法
1通过对象字面量的形式创建对象
javascript自带的关键字必须放在引号之间 对象里面也能放对象
var obj1={x:1,y:2,z:3};
var obj2={
'x':1,
"y":2,
username:'king',
'for':'Javascript关键字必须放到引号之间',
'first-name':'queen',
married:true,
test:null,
test1:undefined,
salary:12.3,
person:{
username:'king',
age:12,
addr:'北京'
}
};
2 通过new Object()创建对象
var obj3=new Object();//创建一个空对象,{}
var arr=new Array();//空数组,[]
var date=new Date();//日期时间对象
3通过构造函数的形式创建对象
首字母必须大写 为了区分 其他函数 例子
function Test(){ function Test(num1,num2){
} this.n1=num1;
var obj = new Test();实例化一个对象 this.n2=num2;
}
var obj = new Test(2,5);
console.log(obj); 输出是 Test{n1:2,n2:5};
4通过Object.create()创建对象
var obj6=Object.create({x:1}); console.log(obj6) // {x:1}
var obj7=Object.create(null); console.log(obj7) //{} 空的对象
查询属性: 对象.属性名 或者 对象[属性名]
添加属性:对象.属性名 或者 对象[属性名]
改属性: 对象.属性名 或者 对象[属性名]
删除制定属性:用delete 删除后不留位置
如果属性不确定,需要使用[ ] var key='username'; console.log(person[key]); console.log(person.key);console.log(person['key']);俩个结果都为undefined
通过for/in遍历属性:
var obj={
x:1;
y:2;
test:‘this is test’;
}
for (var p in obj){ p指的是x y test
console.log(p); 输出是{ x,y,test}
}
对象中有方法 obj.方法名()
var obj2={
username:'king',
age:12,
addr:'北京',
sayHi:function (){
return 'say Hi';
},
info:function(){
return '用户名:'+this.username+'
'+'年龄:'+this.age+'
地址:'+this.addr;
}
};
console.log(obj2.sayHi()); say Hi
console.log(obj2.info()); info()必须加()因为他是个函数(方法)
在构造函数创建对象 实例化之后 再新增对象属性(函数),在构造函数内不显示,控制台输出的是undefined