我正在写一堂小课,但我不明白为什么这行不通:
var Browsertest = {
isIE: /MSIE (\d+\.\d+)/.test(this.getUserAgent()),
getUserAgent: function() {
return navigator.userAgent;
}
};
console.log(Browsertest.isIE);
我收到
getUserAgent()
不存在/可用的错误(在IE9和其他浏览器中)。 最佳答案
您在定义getUserAgent
函数之前先调用它。使用object literals
时,需要在使用实例成员之前对其进行定义。
两种选择...
一:
var Browsertest = {
getUserAgent: function() {
return navigator.userAgent;
},
isIE: function() { return /MSIE (\d+\.\d+)/.test(this.getUserAgent()); }
};
console.log(Browsertest.isIE());
二:
var Browsertest = new function() {
var that = this;
this.getUserAgent = function() {
return navigator.userAgent;
};
this.isIE = /MSIE (\d+\.\d+)/.test(that.getUserAgent());
};
console.log(Browsertest.isIE);