
对象[变量]
var x = "name";
var n = obj[x]; //获取属性值
obj[x] = "XXX"; //设置属性值
补充说明:对象属性的使用有两种方式:
objname
或
obj["name"]
第二种方式的属性名是个字符串,这就为变量的使用制造了可能性。
1、先定义一个json变量。
2、然后定义这个变量的值,其实一个json对象就是一个obj对象。
3、要添加json对象的元素,直接使用数组下标方式,添加键和值就行了。
4、要为json对象添加对象,我们可以先创建一个对象。
5、然后也是使用数组下标方式,为其赋值为新的对象变量就行了。
6、在浏览器里,我们就可以看到这个json对象了,而且新加的元素和对象都已经在里面了。
还可以这样用吗? 如果按你这个写法,Input的value会是:常量字符串“${List[0]}”,这个字符串跟内存中的对象有什么关系呢?
你要是说Value里是一个json串,你可以把它转换成一个对象,这还说得过去。
公共属性方法:
私有属性和方法:
通过 this 或者 prototype 暴露的方法就是 共用属性方法 ,比如 var 定义在内部的方法就算 私有属性方法 。
如果是使用了 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;};
以上就是关于js 一个对象的属性名是一个变量如何设置和获取值全部的内容,包括:js 一个对象的属性名是一个变量如何设置和获取值、前台js 取json 对象数组数据、input标签中value属性存入了一个对象,如何在js中获去这个对象的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)