js对象属性的动态添加

hnetv_111 2010-10-10 02:50:10
我为一个obj对象动态添加属性,出现如下情况。
var arr=[];
arr['js']='jquery';
arr['css']='oocss';
var obj={};
for(var i in arr)
{

obj.i=arr[i];
}
alert(obj.js);

css显示为undefined的,说明obj中没有这个属性。
但是我换一种添加方式

var arr=[];
arr['js']='jquery';
arr['css']='oocss';
var obj={};
for(var i in arr)
{

obj[i]=arr[i];
}
alert(obj.js);

可以打印出来的值。

我疑惑的动态添加对象属性的时候.和[]在我印象中都可以的。但是上面代码的问题不知道出在哪里,忘达人解答。
...全文
2211 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wz_307 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 duck530 的回复:]

上面的说话都不是很准确

.是用对某个确定的属性名的访问
[]才是对不确定的属性的访问 比如上你这里,属性命是动态构建的
[/Quote]
"[]才是对不确定的属性的访问 比如上你这里,属性命是动态构建的", 是么?
obj.js == obj["js"], 这是确定的属性吧, 可以访问.
json中数据以key-value的对形式出现, .号和[]号都表示对属性的索引, 只是用法不同.

令=>#8 写法错误
eval("obj." + i + " =_obj['" + i + "']");//这样用eval强转, 且要注意右边[]中带引号
踏雪听雨 2010-10-11
  • 打赏
  • 举报
回复
是不是要用eval转换一下

eval('obj.i')=arr[i]
duck530 2010-10-10
  • 打赏
  • 举报
回复
假如你用 obj.js="Jquery" 应该就可以了
duck530 2010-10-10
  • 打赏
  • 举报
回复
上面的说话都不是很准确

.是用对某个确定的属性名的访问
[]才是对不确定的属性的访问 比如上你这里,属性命是动态构建的
friendly_ 2010-10-10
  • 打赏
  • 举报
回复
[]可以用变量,.不可以
zhangshaolongjj 2010-10-10
  • 打赏
  • 举报
回复
有些情况
.是娶不到的,具体的我也不记得了,我知道比如a["oo" + i]这样的就不能.
所以你用[]就可以了
wz_307 2010-10-10
  • 打赏
  • 举报
回复
你的.i表示obj的i属性, 即obj["i"]

当然不能直接.i赋值了
JavaScript极速狂飙:组合拼接字符串的效率JavaScript极速狂飙:CSS样式表的背景渲染效率JavaScript面向对象的支持--(1)JavaScript面向对象的支持--(2)JavaScript面向对象的支持--(3)JavaScript面向对象的支持--(4)JavaScript面向对象的支持--(5)JavaScript面向对象的支持--(6)JavaScript精简学习1:基础知识JavaScript精简学习2:浏览器输出JavaScript精简学习3:图像JavaScript精简学习4:表单事半功倍之Javascript--(1)事半功倍之Javascript--(2)事半功倍之Javascript--(3)事半功倍之Javascript--(4)JavaScript教程--从入门到精通--(1)JavaScript教程--从入门到精通--(2)JavaScript教程--从入门到精通--(3)JavaScript教程--从入门到精通--(5)JavaScript教程--从入门到精通--(6)JavaScript教程--从入门到精通--(7)JavaScript教程--从入门到精通--(8)JavaScript教程--从入门到精通--(9)悟透JavaScript(李站老师)-编程的快乐悟透JavaScript(李站老师)-初看原型悟透JavaScript(李站老师)-对象素描悟透JavaScript(李站老师)-放下对象悟透JavaScript(李站老师)-构造对象悟透JavaScript(李站老师)-原型扩展用javascript操作 asp .net TextBox控件用javascript操作 asp .net Label控件用javascript操作 asp .net TextBox控件 下用javascript操作asp.net label控件 外一篇用javascript改变onclick调用的函数用JavaScript加密保护网站页面用Javascript检测网速的方法用Javascript评估用户输入密码的强度用JavaScript实现仿Windows关机效果用javascript实现进度条用javascript怎样实现图片模糊效果《ExtJS2.0实用简明教程》之Border区域布局《ExtJS2.0实用简明教程》之Ext类库简介《ExtJS2.0实用简明教程》之布局概述《ExtJS2.0实用简明教程》之获得ExtJS《ExtJS2.0实用简明教程》之应用ExtJSjs访问xml之遍历节点树js访问xml之创建xmlDocumentjs访问xml之根节点操作js访问xml之节点操作(1)js访问xml之节点操作(2) js访问xml之节点对象属性和方法js访问xml之删除一个book元素节点js访问xml之添加一个book元素节点【JS】兼容ff的加入收藏和设为首页【补】【sina】绕过sina博客的限制,超级BT执行Javascript【blog】介绍一下给sina博客加背景音乐的办法【Blog】再次解说博客加音乐的办法张孝祥JavaScript教程笔记:HTML基础张孝祥JavaScript教程笔记:HTML基础(二)张孝祥JavaScript教程笔记:HTML基础(三)-URL,图像标签,图像地图JavaScript经典效果集锦(一)JavaScript经典效果集锦(二)JavaScript经典效果集锦(三)Javascript技术技巧大全(一)Javascript技术技巧大全(二)Javascript技术技巧大全(三)Javascript技术技巧大全(四)Javascript技术技巧大全(五)JavaScript[对象.属性]集锦之一
Date 对象属性constructor 返回对创建此对象的 Date 函数的引用。prototype 使您有能力向对象添加属性和方法。Date 对象方法getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。getFullYear() 从 Date 对象以四位数字返回年份。getHours() 返回 Date 对象的小时 (0 ~ 23)。getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。getMonth() 从 Date 对象返回月份 (0 ~ 11)。getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。getTime() 返回 1970 年 1 月 1 日至今的毫秒数。getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。getYear() 已废弃。 请使用 getFullYear() 方法代替。parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。setFullYear() 设置 Date 对象中的年份(四位数字)。setHours() 设置 Date 对象中的小时 (0 ~ 23)。setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。setMonth() 设置 Date 对象中月份 (0 ~ 11)。setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。setTime() setTime() 方法以毫秒设置 Date 对象。setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。setYear() 已废弃。请使用 setFullYear() 方法代替。toDateString() 把 Date 对象的日期部分转换为字符串。toGMTString() 已废弃。请使用 toUTCString() 方法代替。toISOString() 使用 ISO 标准返回字符串的日期格式。toJSON() 以 JSON 数据格式返回日期字符串。toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。toString() 把 Date 对象转换为字符串。toTimeString() 把 Date 对象的时间部分转换为字符串。toUTCString() 根据世界时,把 Date 对象转换为字符串。UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。valueOf() 返回 Date 对象的原始值。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧