建一个空对象user:
var user=new Object();
1.添加属性
1.1.一般添加属性(属性名已知)
这时user 对象没有任何属性和方法,显然没有任何用途。但可以为它动态的添加属性和方法,例如:
user.name=”jack”;
user.age=21;
user.sex=”male”;
user["height"] = 158; //采用方括号([])语法
user.alert=function(){ //添加方法
alert(“my name is:”+this.name);
}
1.2.动态添加属性(属性名未知)
var p = "name";
user[p] = "jack" ; //相当于user.name = "jack"
2.修改属性
修改一个属性的过程就是用新的属性替换旧的属性,例如:
user.height = 160;
3 . 删除属性
delete user.name;//删除属性
console.log(user.name);//undefined
4.判断对象是否含有某个属性
4.1方法一:in方法
alert(
‘name‘
in user
);
// --> true
alert(
‘weight‘
in user
);
// --> false
alert(
‘toString‘
in user
);
// --> true
NT:可看到无论是name,还是原形链上的toString,都能检测到返回true。
4.2方法一:hasOwnProperty 方法
user.hasOwnProperty(
‘name‘
);
// --> true
user.hasOwnProperty(
‘toString‘
);
// --> false
NT:原型链上继承过来的属性无法通过hasOwnProperty检测到,返回false。需注意的是,虽然in能检测到原型链的属性,但for in通常却不行。
for in的更多知识详见for in的缺陷 。