学javascript遇到的一个小问题,大家帮忙一下

King钢 2015-07-24 09:02:23
function getCurrentStyle (obj,attr)
{
if(obj.currentStyle)
{
return obj.currentStyle[attr];
//不知道为啥[attr]这么写
//而写成obj.currentStyle.attr就不行
//什么时候写成[attr]这样
}
else
{
//FF
return getComputedStyle(obj,false)[attr];
//这个也是,同样有些不理解
}
}
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sydhr_1994 2015-07-24
  • 打赏
  • 举报
回复
你如果用.attr的话 就是获取这个对象的attr属性了 因为attr是参数传过来的 是变量 。 就需要[]方式访问了
forwardNow 2015-07-24
  • 打赏
  • 举报
回复
访问对象的属性的方式有两种:1,“.”(点操作符);2,“[ ]”(中括号) 1,“.”(点操作符) 对象.标识符 如: var o = { name: "张三", gener: "男" }; o.name; //=> "张三" 这种方式就是,对象的属性名必须符合标识符的命名规则,而且必须知道调用哪个属性,也就是硬编码。 2,“[ ]”(中括号) 对象名.[ 字符串或可计算为字符串的表达式 ] 如: var o = { "张三": 1 } var name = "张三"; o[ name ]; //=> 1 这种访问方式,最大的特点就是属性名是字符串即可,也就是随便取属性名; 而且中括号里可以是表达式(如变量),这就避免了硬编码,带来更多灵活性。
雪狸 2015-07-24
  • 打赏
  • 举报
回复
引用 4 楼 yh674256 的回复:
[quote=引用 1 楼 licuifeng 的回复:] obj.currentStyle[attr]此处的attr可以用调用此方法时传入的参数attr替换,如 我调用此方法时,getCurrentStyle (obj,param1),则obj.currentStyle[attr];即为obj.currentStyle[param1];但是obj.currentStyle.attr是不会变的 ,表示返回obj.currentStyle这个对象中的attr属性,而不是param1属性
那为什么不可以obj.currentStyle.[attr]呢[/quote] obj.currentStyle.[attr] js不支持这样的语法
雪狸 2015-07-24
  • 打赏
  • 举报
回复
obj.currentStyle.[attr] js不支持这样的语法
King钢 2015-07-24
  • 打赏
  • 举报
回复
引用 1 楼 licuifeng 的回复:
obj.currentStyle[attr]此处的attr可以用调用此方法时传入的参数attr替换,如 我调用此方法时,getCurrentStyle (obj,param1),则obj.currentStyle[attr];即为obj.currentStyle[param1];但是obj.currentStyle.attr是不会变的 ,表示返回obj.currentStyle这个对象中的attr属性,而不是param1属性
那为什么不可以obj.currentStyle.[attr]呢
似梦飞花 2015-07-24
  • 打赏
  • 举报
回复
对象可以写成obj[str]的形式
hch126163 2015-07-24
  • 打赏
  • 举报
回复
var attr="width"; obj.currentStyle.attr 就是 obj.currentStyle.attr obj.currentStyle[attr] 相当于 obj.currentStyle.width
雪狸 2015-07-24
  • 打赏
  • 举报
回复
obj.currentStyle[attr]此处的attr可以用调用此方法时传入的参数attr替换,如 我调用此方法时,getCurrentStyle (obj,param1),则obj.currentStyle[attr];即为obj.currentStyle[param1];但是obj.currentStyle.attr是不会变的 ,表示返回obj.currentStyle这个对象中的attr属性,而不是param1属性

87,838

社区成员

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

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