能够在定义函数表达式之前使用它
Able to use function expression before it is defined
根据提升函数表达式在定义之前不能调用。我创建了一个模块,试图在定义IIFE之前访问IIFE函数。根据我的理解,它应该给出一个错误,说cookieManager.setPerstistentCookie不是一个函数,但它运行良好。为什么?
$(function(){
var selectedContainerClassName = $('.mtaa-iml-dropdwn-options li.mtaa-iml-selected').data('parent');
cookieManager.setPersistentCookie(cookieManager.getCookieNameByComponent('imlookingTo') , selectedContainerClassName );
});
var cookieManager = (function(){
var cookieEnum = {
imlookingTo : "selectedUIContainer"
}
function getPerstistentCookieExpiryTime(){
var expiration_date = new Date();
expiration_date.setFullYear(expiration_date.getFullYear() + 1);
return expiration_date.toGMTString();
}
var setPersistentCookie = function(cname, cvalue) {
var expires = "expires="+ getPerstistentCookieExpiryTime();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
return {
setPersistentCookie : setPersistentCookie,
getCookieNameByComponent : getCookieNameByComponent
}
})();
您已经将引用cookieManager
的函数封装在jQuery"就绪"处理程序中。在DOM准备好之前,这些代码不会运行,所以到那时对象已经定义好了。换句话说,在它被定义之前,你不会使用它。
对不起,伙计们,糟糕的是,我说得对,吊装不起作用,也不应该像我解释的那样起作用。之所以有一些工作原理,是因为我在$(function(){})
代码段上方复制了相同的脚本代码段,但我错误地忘记了删除它。无论如何,谢谢你的帮助。
相关文章:
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 错误:[$compile:nonassign]表达式'未定义'与指令'内容可编辑'是不可
- 能够在定义函数表达式之前使用它
- 错误:与指令一起使用的表达式“未定义”不可赋值
- 用于在组合文件中查找 AMD 定义呼叫的正则表达式
- xxxx@my.csun.edu 正则表达式的自定义电子邮件验证
- 自定义正则表达式
- 表达式'$的结果.cookie'[未定义]不是函数
- Traceur运行时:超级表达式必须为null或函数,而不是未定义的
- 是否可以在自定义指令中使用理解表达式
- 如何使用正则表达式验证 JavaScript 中的自定义 URL
- 正则表达式在 Jest 测试中没有定义
- Angular.js 中字符串特定部分的自定义筛选器表达式
- 搜索/将自定义标记替换为 javascript 正则表达式
- Dojox 水平范围滑块读取定义表达式的值
- TypeError:超级表达式必须是 null 或函数,而不是使用 Babeljs 未定义
- 表达式 '$.mobile' [未定义] 的结果不是对象
- javascript 错误:未定义 jQuery 和无效的正则表达式:缺少 /
- 将正则表达式定义为 javascript 变量会导致错误
- Javascript -删除除正则表达式定义之外的所有内容