我有一个重要的问题,我将要面对80%的案件。
让我说:
var bcount = properties.count;
favicon.badge(bcount);
bcount.change(function() { favicon.badge(bcount); });
properties.count
=其数字根据用户操作而变化。
favicon.badge
是一个显示动作的javascript,效果很好。
我试图在bcount var上使用.change,但由于不是元素,因此给我错误,我认为。 值更改时有什么方法可以监听var?
我面临的问题是,当计数更新时,使用一个新数字。仅在刷新页面后更新。
谢谢!
编辑:我正在尝试设置吸气剂和吸油器:
var bcount = {
a: properties.count,
get b() {
return this.a;
},
set c(cname) {
this.a;
}
};
可以吗?现在我该如何发起呼叫?
答案 0 :(得分:0)
我认为您需要get
和set
功能。您可以将逻辑放在这些函数中,它们将在变量get和set中执行您想要的操作。
查看此内容: es5-getters-setter
来自上面链接的示例:
var person = {
firstName: 'Jimmy',
lastName: 'Smith',
get fullName() {
return this.firstName + ' ' + this.lastName;
},
set fullName (name) {
var words = name.toString().split(' ');
this.firstName = words[0] || '';
this.lastName = words[1] || '';
}
}
person.fullName = 'Jack Franklin';
console.log(person.firstName); // Jack
console.log(person.lastName) // Franklin
编辑:
每个字段都有其get
和set
。如果您想让其他人在阅读您的代码时感到困惑,请这样做。但是正确的事情是这样:
var properties = {
_count:0, // you hold count value here
get count() { // every time you get "properties.count" this function will run
// place for your code that must run on get, like "var bcount = properties.count"
return this._count;
},
set count(new_count) { // every time you want to do "properties.count = some_int" this function will run
// place for your code that must run on set, like "properties.count = some_int"
this._count = new_count;
}
};
// usage
properties.count = 10; // "properties._count" is "10" now
var bcount = properties.count; // you just got "properties._count" value