js中如何复制一个对象并获取其所有属性和属性对应的值

js中如何复制一个对象并获取其所有属性和属性对应的值,第1张

如果是使用了  JQ  EXTJS 的话本身就有 对象克隆的 函数库可以使用  如 extjs 使用

extuxutilclone()

没有用这些的话 可以自己写一个 克隆函数  网上有资源  比如

function deepClone(obj){    var result={},oClass=isClass(obj);

    // if(oClass==="Object"){

    //     result={};

    // }else if(oClass==="Array"){

    //     result=[];

    // }else{

    //     return obj;

    // }

    for(key in obj){

        var copy=obj[key];

        if(isClass(copy)=="Object"){

            result[key]=argumentscallee(copy);

        }else if(isClass(copy)=="Array"){

            result[key]=argumentscallee(copy);

        }else{

            result[key]=obj[key];

        }

    }

    return result;

}

function isClass(o){

    if(o===null) return "Null";

    if(o===undefined) return "Undefined";

    return ObjectprototypetoStringcall(o)slice(8,-1);

}

或者参考 extjs 的方法

 function(o) {  

   if(!o || 'object' !== typeof o) {        return o;    }   

    if('function' === typeof oclone) {        return oclone();    }   

     var c = '[object array]' === objectprototypetostringcall(o)  [] : {};

     var p, v;    

     for(p in o) {       

      if(ohasownproperty(p)) {            v = o[p];           

      if(v && 'object' === typeof v) {               

       c[p] = extuxutilclone(v);          

         }     else {          

               c[p] = v;          

           }        

           }   

            }  

        return c;};

var tds = tablegetElementsByTagName("td");

for(var i=0,l=tdslength; i<l; i++){

    tds[i]styleborder = '';

}

像你所说的abc是字面量,不好找;不过function可以很好找到,不知道是不是你要找的效果:

function abc(){};这里定义了一个函数,通过toString()可以获取到函数的字符串,然后通过正则表达式可以获取到声明的abc,呵呵,之前看angularjs里面的一段代码,希望对你有用

以上就是关于js中如何复制一个对象并获取其所有属性和属性对应的值全部的内容,包括:js中如何复制一个对象并获取其所有属性和属性对应的值、急!!!!!!!获取一个table的js对象下的所有td的对象、js 如何获取对象名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9484822.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存