由于构造函数在另一个函数中,所以没有定义新对象
New object is not defined due constructor being inside another function
我的问题:当我创建一个新对象时,构造函数被深深地嵌套在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的完整代码:
http://jsfiddle.net/hkqxswed/1/问题在于您可以在liquidFont
之前调用breakpoint
。liquidFont函数包含断点的代码,如果你不调用它,断点将永远不会被定义。
但是如果你首先调用liquidFunction
并使用一个变量设置全局断点,你可以从任何地方调用它
liquidFont();
var a = new breakpoint("start");
a.condition();
的例子:http://jsfiddle.net/hkqxswed/4/
如果你真的需要从任何地方调用断点,你可以创建一个js "类",使其全局,并从任何地方调用来创建实例。
也许你需要重构liquidFont函数并将其转换为"静态类",在此之后,你将访问每个属性&方法:
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();
相关文章:
- 如何使用自定义辅助对象(handler)实现嵌套的每个循环
- 查找关键字并创建新对象
- 创建新对象时,为什么要更新旧对象
- 为什么要使用立即调用的函数来创建新对象
- 剑道网格-插入具有外部列的新对象失败
- 将原型调用为新对象中的另一个原型
- 将新对象添加到本地存储
- $$hashKey在Angular中push()新对象时未生成新值
- 从分析类传递现有对象,否则创建一个新对象
- 为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
- 从新对象的属性更新对象的属性,但前提是新对象上的属性不是未定义的
- 在navigator对象中定义新的mimetype
- 如何在创建新对象时创建具有已定义设置的对象/函数
- 我无法在javascript中定义一个新对象,并使用输入将其推入数组,而不覆盖它或导致错误
- 可以将新特性添加到已定义的对象中吗
- Facebook图形api和新定义的对象和动作:消息:"未知路径组件"
- 由于构造函数在另一个函数中,所以没有定义新对象
- 新对象() 未定义
- 为什么 JavaScript 原型属性在新对象上未定义
- 尝试学习如何在新对象中定义方法