【发布时间】:2013-12-10 22:20:54
【问题描述】:
我想知道如何使用原型对象和闭包上的私有属性来创建 JS 计数器(希望如下所示)。如果有人能告诉我如何做,但也可以发表评论,以便我理解步骤和过程,我将不胜感激。
<!DOCTYPE html>
<html>
<body>
<button name="button" class="click-tracking">Click Me</button>
<script>
var counts = {},
track = document.getElementsByClassName('click-tracking');
for (var i = 0, max = track.length; i < max; i++) {
track[i].addEventListener('click', function() {
var name = this.name,
ele = document.getElementById(name + '-count') || false;
if (typeof counts[name] === 'undefined') {
counts[name] = 0;
}
if (!ele) {
var ele = document.createElement('div');
ele.id = name + '-count';
this.parentNode.insertBefore(ele, this.nextSibling);
}
ele.innerHTML = counts[name]++;
});
}
</script>
</body>
</head>
</html>
【问题讨论】:
-
我不明白这个问题。你的代码有什么问题(看起来很有效)?
-
你想要一个原型对象做什么?此功能绝对没有必要 - 您没有任何共享公共属性的多个实例。
-
我想为按钮制作一个计数器,但我想在原型和闭包上使用私有属性,而不是仅仅使用 js。因此,我只是将代码放入示例中,以说明我希望它的外观。很抱歉造成混乱。
-
我只是想用我熟悉的东西来进一步了解原型和闭包。
-
很抱歉,这些概念不适用于这个熟悉的简单脚本。顺便说一句,你从哪里得到的?没有“原型上的私有属性”之类的东西,这在 JavaScript 中是不可能的。
标签: javascript button closures prototype