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;};

每个Img规定一个ID;

<img src="1jpg" id="img1">

<img src="1jpg" id="img2">

<img src="1jpg" id="img3">

点击一个按钮获取src

<input type="button" value="获取src" onclick="aa()">

js中:

function aa(){

var img1 = documentgetElementById("img1")src;

//别的一样获取。这样获取的src是绝对路径

}

或者这样:

function aa(){

var img1 = documentgetElementById("img1")getAttribute("src");

//跟上面效果一样。

}

第一种,alert,也是最原始的

用for循环逐一读取obj的数据然后alert或者展示到页面的dom元素内。

第二种,控制台输出

consolelog(obj),然后按f12打开调试面板然后切换到控制台标签查看,但是ie下不能查看到具体的值。

第三种,添加监视

按F12打开调试面板然后切换到调试(脚本)标签,然后找到你要查看的obj代码,然后在这一行打一个断点,然后点击按钮(其他能触发代码运行到这里的 *** 作都行)然代码运行到这里,然后右键obj这个变量添加监视然后查看obj属性

第四种,全局变量

在你要查看obj变量的代码位置后加上windowtemp_obj = obj;然后按F12打开调试界面,接着打开控制台标签,然后输入temp_obj再输入看提示有哪些属性,然后输入temp_objattrName按回车看指定属性的名称,或者直接输入temp_obj按回车查看。

其他的不多说,但大体都是这些衍生出来的调试方法,具体怎么运用视情况而定。

对象[变量]

比如obj是一个对象,它有个属性是name:

var

x

=

"name";

var

n

=

obj[x];

//获取属性值

obj[x]

=

"XXX";

//设置属性值

补充说明:对象属性的使用有两种方式:

objname

obj["name"]

第二种方式的属性名是个字符串,这就为变量的使用制造了可能性。

以上就是关于js中如何复制一个对象并获取其所有属性和属性对应的值全部的内容,包括:js中如何复制一个对象并获取其所有属性和属性对应的值、JS如何取得当前对象的属性、如何查看javascript object对象的所拥有的属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存