Javascript动态函数调用

Javascript动态函数调用,javascript,dynamic,Javascript,Dynamic,我想用Javascript做一些类似Rubyish的东西。我正在编写一个关于设置DOM元素样式的包装器。在每种风格的基础上会有类似的情况: ele.style.backgroundColor = someSetting ele.style.padding = anotherSetting 我想用Ruby语法来说明: class Element def initialize(ele) @ele = ele end def setDOMElementStyle(styleSe

我想用Javascript做一些类似Rubyish的东西。我正在编写一个关于设置DOM元素样式的包装器。在每种风格的基础上会有类似的情况:

ele.style.backgroundColor = someSetting
ele.style.padding = anotherSetting
我想用Ruby语法来说明:

class Element
  def initialize(ele)
    @ele = ele
  end

  def setDOMElementStyle(styleSettings = {})
    styleSettings.each_pair do |styleAttribute, setting|
      @element.style.send(styleAttribute, setting)
  end

  # Other wrapper stuff for elements here
end

element = Element.new document.createElement("div")
element.setDOMElementStyle :width => '60px', :height => '2px', :top => '0px', :left => '0px'
在Javascript中,我可以用可怕的eval来实现这一点,但我想知道是否有更简洁的方法来处理它。这里有一个邪恶的评估黑客

谢谢

使用方括号:

element.style[styleAttribute] = setting
在JavaScript中,每个属性也可以通过方括号引用。示例:

window.location.href === window["location"].href === window["location"]["href"]
    === window.location["href"]
使用方括号:

element.style[styleAttribute] = setting
在JavaScript中,每个属性也可以通过方括号引用。示例:

window.location.href === window["location"].href === window["location"]["href"]
    === window.location["href"]

我不知道为什么需要eval,可以使用jQuery和吗?或者.style[attr]=val?出于教育目的,您已经使用[]访问了styleSettings[setting]…@DaveNewton伪代码。使用技巧不是学习语言的正确方法。@RobW不知道你为什么这么告诉我。他显然是想把ruby风格的行为移植到JS中。学习JS的方法不是使用JQUery JQUery==JS,而是使用JS!=我不知道你为什么需要eval,你能用JQuery和吗?或者.style[attr]=val?出于教育目的,您已经使用[]访问了styleSettings[setting]…@DaveNewton伪代码。使用技巧不是学习语言的正确方法。@RobW不知道你为什么这么告诉我。他显然是想把ruby风格的行为移植到JS中。学习JS的方法不是使用JQUery JQUery==JS,而是使用JS!=我记得有些DOM对象只是不愿意作为普通的可索引对象访问。幸运的是,事实证明我错了。谢谢[尴尬地咧嘴一笑]我记得有些DOM对象只是不愿意作为普通的可索引对象访问。幸运的是,事实证明我错了。谢谢