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

来源:互联网 发布:干性皮肤洗面奶知乎 编辑:程序博客网 时间:2024/04/29 17:11

       用js写了一段简单的遍历js对象的成员中属性和成员方法的代码:

//对象克隆的方法,普通的对象赋值,例如var1和var2都是对象,当var1=var2,只是让var1指向了var2的那片内存空间,//并没有为var1另外分配一片内存空间//此处的clone方法,用于重新开辟一片内存空间,但值得注意的是,如果对象中含有对象,那么克隆就可能造成递归Object.prototype.clone=function(){var result=new Object();if(this){//如果这个对象不为空或者undefinedfor(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] 这两种方法是有区别的。原来一直以为他们是等价的。

0 0
原创粉丝点击