您的位置:首页 > Web前端 > JavaScript

遍历js对象中的属性以及成员方法

2013-12-16 15:35 344 查看
       用js写了一段简单的遍历js对象的成员中属性和成员方法的代码:

//对象克隆的方法,普通的对象赋值,例如var1和var2都是对象,当var1=var2,只是让var1指向了var2的那片内存空间,
//并没有为var1另外分配一片内存空间
//此处的clone方法,用于重新开辟一片内存空间,但值得注意的是,如果对象中含有对象,那么克隆就可能造成递归
Object.prototype.clone=function(){
var result=new Object();
if(this){//如果这个对象不为空或者undefined
for(var key in this){
result.key=this.key;
}
}
return result;
}
然后调用该方法:
var myobj1={name:"zhangsan",age:12,tel:"13584544",say:function(words){

document.write(this.name+" say:"+words);
},sex:"male"};

var myobj2=myobj1.clone();
myobj2.say("hello , iam zhangsan ");

然后一直提示,myobj2变量没有say方法,呵呵。。。然后进堆栈里看,原来myobj2克隆失败,当遍历myobj1的各属性和方法时,循环变量key并不为空,但是result的属性却没有增加,后来换了一种写法:
result[key]=this[key];然后就成功了,哎。搞不懂原来 对象.key  和  对象[key] 这两种方法是有区别的。原来一直以为他们是等价的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: