将Javascript对象绑定到Vanilla JS中的DOM元素

时间:2016-10-11 09:05:36

标签: javascript dom

所以这主要是一个最佳Javascript实践的问题。我正在创建一个带有香草JS的图书馆用于闹钟。

它类似于:

HTML

<div>current time</div>
<form> ... </form>         <!-- create new alarm -->
<ul id="alarms"></ul>

JS

 // init variables to select DOM elements
 var Alarm = function() {
   // has a ring function, private vars for name, ringtone, time, isActive
 }
 var AlarmClock = function() {
    var alarms = []
    this.createAlarm = function() {
      // creates Alarm and pushes it to alarms array
      // also creates Alarm DOM element to append to the <ul>
    }
 }

我绝对认为为报警创建DOM元素和Javascript对象是多余的,所以我想知道是否可以将它们合并到一个方法中?我认为我们可以将DOM Elements推送到AlarmClock类中的报警数组,这样当我实现报警删除时,我可以拼接数组,DOM对象就会消失。

或者是否有某种方法可以将HTML DOM元素绑定到Javascript类。我查看this建议使用jQuery数据(),但我想用vanilla JS完成它。我想我也可以添加一个属性来引用相应DOM元素的Alarm对象,但是我很想听听一些有经验的程序员对最佳实践的看法。

1 个答案:

答案 0 :(得分:0)

来自an article I wrote on objects in JavaScript

  

在JavaScript中,所有事物都是对象,即使是其他事物也是如此。功能是对象。字符串是对象。数字是对象。数组是对象。对象就是对象。结果,任何东西都可以分配有属性。

这意味着,可以将这些属性直接分配给DOM节点(或更具体地说,将其缓存到JS变量)。