我有一个名为 Utils.MediaQuery 的对象。我正在尝试访问其 isMobile()函数。
但是,出于某种原因,尝试访问该函数会返回一个&#34;而不是一个函数&#34;错误。更糟糕(并且难以调试),该对象显示为在Firefox控制台中具有该功能, 和 显示为 而不是 < / strong>在Firefox控制台中使用该功能。
调试代码:
console.log("Utils.MediaQuery:", Utils.MediaQuery);
console.log("Utils.MediaQuery.isMobile():", Utils.MediaQuery.isMobile());
结果:
(&#34;对象&#34;下半部分是点击Utils.MediaQuery对象时得到的)
记录的对象没有isMobile()函数,但其描述确实如此。
有罪的对象:
require(['jquery'], function($) {
Utils = {};
Utils.MediaQuery = {
SCREEN_WIDTH_SMALL: 568,
SCREEN_WIDTH_MEDIUM: 720,
SCREEN_WIDTH_LARGE: 1010,
SCREEN_WIDTH_XLARGE: 1400 // in px
};
$(function(){
Utils.$window = $(window);
Utils.$html = $('html');
Utils.$body = Utils.$html.find('body');
Utils.MediaQuery.getViewportWidth = function() {
return Math.max(document.documentElement.clientWidth,
window.innerWidth || 0);
};
Utils.MediaQuery.isMobile = function() {
return (Utils.MediaQuery.getViewportWidth() < Utils.MediaQuery.SCREEN_WIDTH_MEDIUM);
};
});
});
什么会导致这种行为?
PS:这是我刚刚加入的一个笨重的遗产项目。考虑到我仍然无法了解其架构,我很害怕 我无法解释PPS:似乎与this question相关,后者又链接到this question,但在这两种情况下,我都无法看到答案如何应用于当前问题。对不起,如果我错了。