所以这主要是一个最佳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对象,但是我很想听听一些有经验的程序员对最佳实践的看法。
答案 0 :(得分:0)
来自an article I wrote on objects in JavaScript:
在JavaScript中,所有事物都是对象,即使是其他事物也是如此。功能是对象。字符串是对象。数字是对象。数组是对象。对象就是对象。结果,任何东西都可以分配有属性。
这意味着,可以将这些属性直接分配给DOM节点(或更具体地说,将其缓存到JS变量)。