我有一段JavaScript代码,该代码使用ECMA6数据集属性来访问元素data-foo
的对象e
属性。不幸的是,这与<= IE10不兼容。为了解决这个问题,我将代码重写为使用三元运算符,在支持时使用数据集,在不支持时使用getAttribute:
(e.dataset) ? e.dataset.foo : e.getAttribute('data-foo');
但是为什么我不应该只用e.getAttribute('data-foo')
替换整行?当以前的标准同样出色并得到更广泛的支持时,使用ECMA6标准的真正好处是什么?
答案 0 :(得分:3)
首先,dataset
属性似乎不属于ES6规范的一部分。它是HTML spec的一部分。
提到您的问题
当以前的标准同样出色并得到更广泛的支持时,使用ECMA6标准的真正好处是什么?
简单。
您可能会发现,在e.dataset.foo
和e.getAttribute('data-foo')
两种方法中,前一种方法较为冗长,因此在许多情况下是可取的。首先,它减少了您附带的Javascript文件的大小。
规范甚至强调了这一点:
数据集IDL属性为元素上的所有data- *属性提供便捷访问器。 ...
[重点突出]