<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>对象</title>
</head>
<body>
<script>
//创建对象
// var stu = new Object();//创建一个空对象
// //属性--特征 名词
// stu.name = "小麦";
// stu.age = 23;
// stu.sex = "女";
// //属性--行为 动词
// stu.like = function(name){
// //只有在当前stu对象中,this才是指stu
// console.log(this.name +this.age+"了,他"+ "喜欢" +name);
// }
// //获取对象的属性
// console.log(stu.name);
// console.log(stu.age);
// //调用对象的方法
// stu.like("玉米");
// 对象的字面量 (属性 方法 get、set型属性)
var stu = {
name:"小江",
_age:15,
sex:"未知",
like:function(food){
console.log("大家好,我是"+this.name+",我喜欢吃"+food);
},
get age(){
return this._age;
},
set age(val){
if(val<0 || val>150){
throw new Error("invalid value");
}else{
this._age = val;
}
},
address:{
home:"jiating",
office:"office"
}
};
stu.like("玉米");
//Object.defineProperties定义与属性修改
Object.defineProperties(stu,{
salary:{value:1000,writable:false},
gender:{value:true},
height:{
get:function(){
return 180;
},
set:function(val){
console.log(val);
}
}
})
console.log(stu.age);
// 输出对象的属性和方法
for(var key in stu){
console.log(key);//输出对象的属性
//console.log(stu[key]);//输出对象属性的值
}
//判断对象是否含有某属性
console.log("name" in stu);//true
var b = stu.hasOwnProperty("name");
console.log(b);
//删除属性
//delete stu.age;
</script>
</body>
</html>
得到对象的属性特征描述:Object.getOwnPropertyDescriptor(对象名,"属性名");