我有一个物体,在本例中是一辆法拉利。例如,当使用 ferrari.speed = 90;
更改速度时,我希望此属性对更改执行一些操作,例如使用函数更改屏幕上法拉利的速度。
我想知道最简单、最不疯狂的方法是什么?
这是一个jsfiddle:
<button id="addspeed">speed up!!</button>
<button id="checkspeed">Check the speed!</button>
function car(){
speed: 0;
//Do something about speed change here? if its changed at all, greater or smaller?
}
document.getElementById('addspeed').onclick = function speedchange(){
ferrari.speed++;
}
document.getElementById('checkspeed').onclick = function checkspeed() {
alert(ferrari.speed);
}
var ferrari = new car();
ferrari.speed = 10;
最佳答案
集合运算符
是您正在寻找的https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/set
这是我的解决方案 http://jsfiddle.net/qhV7B/6/ .
function car(){
}
car.prototype = {
hidden_speed: 0,
set speed(v){
//special action
alert("I changed value to " + v);
this.hidden_speed = v;
},
get speed(v){
return this.hidden_speed;
},
};
var ferrari = new car();
ferrari.speed = 10;
document.getElementById('addspeed').onclick = function speedchange(){
ferrari.speed = (ferrari.speed + 1);
}
document.getElementById('checkspeed').onclick = function checkspeed() {
alert(ferrari.speed);
}
关于javascript - 对象的属性更改时会激活功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16928541/