即时对象初始化混淆
Immediate object initialization confusion
我正在研究一个使用JScroll的js文件。jsp-scroll-y
事件的回调在以下函数中定义
function initWall() {
//callback from jqueryscrollpane
Scroll_TimeLine_Instance = function (event, scrollPositionY, isAtTop, isAtBottom){
//get more content
if (isAtBottom) {
GetMoreDate(objid, vwrsid, secid, orgid, incflwr, qty, mintlid, maxtlid, successGetTimeLineCallback, failureGetTimeLineCallback);
}
}();
}
定义了另一个函数,然后将此回调绑定到 jsScroll
function reapplyScroll() {
Utilities.DestroyScrollBar($(_target).closest('.widgetBody'));
Utilities.ApplyScrollBar($(_target).closest('.widgetBody'), false, Scroll_TimeLine_Instance);
}
Utilities.ApplyScrollBar = function (element, showScrollBar, scrollCallback) {
$(element).jScrollPane({
horizontalGutter: 5,
verticalGutter: 5,
'showArrows': false
}).bind('jsp-scroll-y', scrollCallback);
if (!showScrollBar) {
$(element).find('.jspDrag').hide();
}
}
从未调用过回调,我发现这是因为它未定义。如果我删除Immediate object initialization
((;从创建函数后开始,一切正常。
谁能解释一下?我不明白为什么它被立即调用,所以我认为这是创建它的人的错误,我不知道为什么它会导致这个变量未定义?
之所以undefined
,是因为函数(立即调用(不return
任何值
所以看起来这确实是图书馆的错误。
要么删除末尾的();
,要么如果你也想在那里调用它,只需在下一行中调用它
function initWall() {
//callback from jqueryscrollpane
Scroll_TimeLine_Instance = function (event, scrollPositionY, isAtTop, isAtBottom){
//get more content
if (isAtBottom) {
GetMoreDate(objid, vwrsid, secid, orgid, incflwr, qty, mintlid, maxtlid, successGetTimeLineCallback, failureGetTimeLineCallback);
}
}; /// this is assigning the function to our variable
Scroll_TimeLine_Instance (); // this is the invokation
}
相关文章:
- 通过iron-ajax初始化对象数组(链接到caller's元素的响应)
- 有了字段的名称,我如何用空白数据初始化对象的未定义字段
- 在fabric.js中初始化对象创建的子类
- 如何在 javascript 中初始化对象
- 用于初始化对象的编码模式 - 构造函数(新)与 Object.create()(Crockford)
- Javascript:按属性初始化对象
- Vue.js从 html 初始化对象属性
- 用数组初始化对象,Javascript
- 使用同一对象的其他属性初始化对象属性
- JQuery 不初始化对象
- 使用动态名称初始化对象 - coffeescript/node.js/javaScript
- 尝试在 JavaScript 中首先初始化对象
- 在javascript中初始化对象;t在编译时工作
- JavaScript 如何初始化对象使用数组
- 正在使用异步请求初始化对象
- 在JavaScript中初始化对象的空属性的正确方法是什么
- 在Javascript中创建和初始化对象成员的顺序
- 用javascript初始化对象
- 如何在javascript中初始化对象时使用元素名
- 如何正确初始化对象并从头开始