javascript语言精粹之javascript对象

发布时间:2019-08-18编辑:脚本学堂
本文介绍了javascript语言精粹中有关javascript对象的用法,有关javascript对象的实例代码,有需要的朋友参考下。

以下代码使用chrome或firefox执行。

例子:
 

复制代码 代码示例:

console.log("********防止不存在时报错");
var user = {
name2 : "truth99",
"age" : 24,
name : {
first : "lee",
last : "xuehan"
},
sex : "男",
language : "中文",
say : function(message){
alert(message || "哑巴");
}
};
//判断user.name1是否存在,不存在也不会报错,存在获取first
var flag = user.name && user.name.first;
if(flag){
console.log(flag,user.name);
}

console.log("********使用“+” String 转换 int");
var str = "32";
var i = +str;
console.log("使用“+”字符串转换数字",i,str);
var str2 = "32dd3";
var i2 = +str2;
var i3 = parseInt(str2);
console.log("但这个不是全能的:"+i2,str2,"有字符就不行了");
console.log("看看parseInt()",i3,str2,"自动截取数字部分");

console.log("********原型");
if(typeof Object.beget !== 'function'){
Object.create = function(o){
var F = function(){};
F.prototype = o;
return new F();
};
}
var another_user = Object.create(user);
console.log("原型的name",another_user.name);
another_user.name = "truth";
console.log("重新定义的name",another_user.name);
//原型关系是一种动态的关系。如果添加一个新的属性到原型中,该属性会立即对所有基于该原型创建的对象可见。
user.weight = "130kg";
console.log(another_user.weight);

console.log("********枚举");
for(var name in another_user){
if(typeof another_user[name] !== 'function'){
console.log(name+":"+another_user[name]); 
}else{
console.log('函数');
console.log(name+":"+another_user[name]);
}
}
//for in 属性名出现的顺序是不确定的,如果想得到正确的顺序就只能使用for

console.log('********删除(delete)');
console.log('删除前:',another_user.name);
delete another_user.name;
//删除对象的属性可能会让来自原型链中的属性透现出来。
//删除another_user的 name属性,从而暴露出原型的name属性
console.log('删除后:',another_user.name);

console.log('********减少全局变量污染');
console.log('最小化使用全局变量的方法之一是为你的应用只创建一个唯一的全局变量');