我有一个对象,我可以从中调用一个函数。而不是它返回函数本身的值。这可能是重复但我找不到合适的解决方案。因此,任何关于此事的流行语都将受到高度赞赏。
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0];
var asd = {
getWindowWidth: function() {
var x = w.innerWidth || e.clientWidth || g.clientWidth;
return x;
},
getWindowHeight: function() {
var x = (function() {
return w.innerWidth || e.clientWidth || g.clientWidth;
})();
return x;
},
init: function() {
console.log("init fired");
console.log(this.getWindowWidth);
console.log(this.getWindowHeight);
console.log(typeof(this.getWindowHeight));
}
}
asd.init();
提前感谢您的支持。
答案 0 :(得分:3)
使用括号来调用函数,否则你只是简单地捕获了函数。
console.log(this.getWindowWidth());
// ^^
答案 1 :(得分:2)
只需更改您的功能this.getWindowWidth()
没有paranthesis
它将执行实际的函数调用,它不会返回值。
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0];
var asd = {
getWindowWidth: function() {
var x = w.innerWidth || e.clientWidth || g.clientWidth;
return x;
},
getWindowHeight: function() {
var x = (function() {
return w.innerWidth || e.clientWidth || g.clientWidth;
})();
return x;
},
init: function() {
console.log("init fired");
console.log(this.getWindowWidth());
console.log(this.getWindowHeight());
console.log(typeof(this.getWindowHeight()));
}
}
asd.init();

答案 2 :(得分:0)
您正在使用this.getWindowHeight而不是this.getWindowHeight()
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0];
var asd = {
getWindowWidth: function() {
var x = w.innerWidth || e.clientWidth || g.clientWidth;
return x;
},
getWindowHeight: function() {
var x = (function() {
return w.innerWidth || e.clientWidth || g.clientWidth;
})();
return x;
},
init: function() {
console.log("init fired");
console.log(this.getWindowWidth());
console.log(this.getWindowHeight());
console.log(typeof(this.getWindowHeight()));
}
}
asd.init();
答案 3 :(得分:0)
调用init函数,但其他函数没有那么多。 正如Alex K.所说,你需要改变
console.log(this.getWindowWidth);
console.log(this.getWindowHeight);
console.log(typeof(this.getWindowHeight));
为:
console.log(this.getWindowWidth());
console.log(this.getWindowHeight());
console.log(typeof(this.getWindowHeight()));
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0];
var asd = {
getWindowWidth: function() {
var x = w.innerWidth || e.clientWidth || g.clientWidth;
return x;
},
getWindowHeight: function() {
var x = (function() {
return w.innerWidth || e.clientWidth || g.clientWidth;
})();
return x;
},
init: function() {
console.log("init fired");
console.log(this.getWindowWidth());
console.log(this.getWindowHeight());
console.log(typeof(this.getWindowHeight()));
}
}
asd.init();