我的问题:我无法引用我在创建新对象时定义的构造函数,因为构造函数深深嵌套在2个函数中:
Func1 - Func2 - Func2中的构造函数。
似乎我对返回的概念有一些问题。我的问题是我们称之为"关闭"?无论如何,当我在保存构造函数但不高一级的函数内创建新对象时它会起作用。
我想要实现的目标:我希望能够创建一个新对象,即使构造函数在各种嵌套函数中也是如此。
我很欣赏一些见解。我是一个纯粹的视觉学习者,所以欢迎这样的例子。
这就是我的构造函数的样子:
function breakpoint(init) {
this.condition = (function init() {
if (Math.abs( browser.width - cached.previousWidth) >= 100 && browser.width < 800) {
elem.style.fontSize = Math.floor(result - 50) + 'px';
cached.previousWidth = browser.width;
}
});
}
以下是Jsfiddle中的完整代码:
答案 0 :(得分:1)
问题是因为您可以在breakpoint
之前致电liquidFont
。
liquidFont函数包含断点代码,如果你从不调用它,则永远不会定义断点。
但是,如果您先拨打liquidFunction
并使用变量拨打全球断点,则可以从任何地方拨打电话
liquidFont();
var a = new breakpoint("start");
a.condition();
示例: http://jsfiddle.net/hkqxswed/4/
如果你真的需要从enywhere调用断点,你可以创建一个js "class",使它成为全局,并从任何地方调用来创建实例。
也许您需要重构liquidFont函数并转换为“静态类”,之后您将访问每个属性&amp;来自任何地方的方法:
var liquidFont : {
settings : {
start: true,
compress: 100,
minimum: 30,
maximum: 120,
animate: true,
animationSpeed: 2000
},
cached : {
previousWidth: window.innerWidth
},
...
init : function(){ ... },
breakpoint : {
condition : function(){ ... }
}
};
liquidFont.init();
liquidFont.breakpoint.condition();