【发布时间】:2015-07-17 02:07:16
【问题描述】:
问题
Uncaught TypeError: state.removeFlag is not a function
额外信息
我在使用下面的代码时遇到问题,给我上面的错误。我的意图很简单,我想在一个“类”中设置两个函数然后调用它们,但是我得到了上述错误,我无法发现问题。我希望另一双眼睛可能会有所帮助。感谢您给我的任何帮助。
注意:Flags.CROSS_SLOT 的值为 1
代码
function State(){
this.state = 0; //bitstring representing the user's choices in the UI
this.addFlag = function(flag){
state = (state | flag);
}
this.removeFlag = function(flag){
state = (~state | flag);
}
}
var state = new State();
state.addFlag(Flags.CROSS_SLOT);
console.log(state.state);
state.removeFlag(Flags.CROSS_SLOT);
console.log(state.state);
【问题讨论】:
-
需要在
addFlag和removeFlag方法中使用this.state。您正在覆盖全局state变量。 -
哇,答案很明显,谢谢。
标签: javascript object methods typeerror bitwise-operators