我正在尝试将 JavaScript 原型与 jQuery 的.data()函数一起使用。我的代码如下所示:
el = this.element;
el.data("state", {
someValue: null,
anotherValue: function() {
this._val = 0;
}
});
el.data("state").anotherValue.prototype.getValue = function() {
return this._val;
}
el.data("state").anotherValue.prototype.setValue = function(val) {
if (val === Infinity || val < 1) {
this._val = 1;
} else {
this._val = val;
}
}
console.log(el.data("state").anotherValue.getValue());
这似乎不起作用,我只是想知道为什么?
运行此代码时得到的结果是:
Uncaught TypeError: Object function () {
this._val = 0;
} has no method 'getValue'
我正在开发一个基于小部件工厂的 jQuery 插件,我想在这个插件中构建一个可管理的状态机 - 我可以存储和访问插件当前状态的中心位置。我想尝试这个的原因之一是我希望能够监控某些值是否发生变化并在它们发生变化时触发其他事情。我需要使用 .data() 函数存储数据,因为它必须绑定到元素。否则,当您在同一页面上获得插件的多个实例时,会发生奇怪的事情。