为JS对象重新赋值中遇到的问题

定义了一个JS对象,如下:

var obj = {name:"",age:"",sex:""};

先第一次赋值:

obj.name = shang;

obj.age = 22;

obj.sex = male;

后由于要动态拿到对象的属性名,再为其赋值,故:

var dyn = $(this).context.id;  //假设此时的dyn为name

obj.dyn = $(this).context.value;

但此时obj.name的值仍为第一次赋的值,并不是动态获取后的。猜测原因是对象obj新增加了一个属性dyn,其值为动态获取到的值。

要为原name赋上新的值,需要这样做:

obj[dyn] = $(this).context.value;

成功。

疑问:但是obj不是数组啊,为什么这样可以?

 

--------------------------------------------------------分割线--------------------------------------------------------

2019年3月2日更新:

在看到EL表达式时,有这样的说法:

如果EL表达式的结果是一个带有属性的对象,则可以利用“[]”或者“.”(这是个点)运算符来访问其属性,如:

${object["propertyName"]}

${object.propertyName}

但是,如果propertyName不是有效的Java变量名,则只能用[]运算符,如访问隐式对象标题中的HTTP的accept-language,只能使用[]运算符,如果运用“.”运算符访问它,将会导致异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值