javascript中var j=(function(){})()的含义

CSY_Admin 2018-05-14 09:03:54
 var countDownFn = (function () {
function countDown(time, day_elem, hour_elem, minute_elem, second_elem) {
//if(typeof end_time == "string")
var end_time = new Date(time).getTime(),//月份是实际月份-1
//current_time = new Date().getTime(),
sys_second = (end_time - new Date().getTime()) / 1000;
var timer = setInterval(function () {
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor(sys_second / (60 * 60 * 24));
var hour = Math.floor((sys_second - (day * 60 * 60 * 24)) / 3600);
var minute = Math.floor((sys_second - day * 24 * 60 * 60 - hour * 3600) / 60);
var second = Math.floor(sys_second - day * 24 * 60 * 60 - hour * 3600 - minute * 60);
day_elem && $(day_elem).text(day < 10 ? "0" + day : day);//计算天
$(hour_elem).text(hour < 10 ? "0" + hour : hour);//计算小时
$(minute_elem).text(minute < 10 ? "0" + minute : minute);//计算分
$(second_elem).text(second < 10 ? "0" + second : second);// 计算秒
} else {
clearInterval(timer);
}
}, 1000);
};
return {
'countDown': countDown
}
})(window.countDownFn || {})

$(function () {
var countDownShow = (function (countDownFn) {
var num = new Date("2018/05/15 20:00:00").getTime() - new Date().getTime();
num -= 1;
var myDay = Math.floor(((num / 1000 ) / 3600) / 24);

//判断大于一天的时候显示:天时分;小于一天的时候显示:时分秒
if (myDay <= 0) {
countDownFn.countDown("2018/05/15 20:00:00", "#edu_colockbox .colDay", "#edu_colockbox .colHour", "#edu_colockbox .colMinute", "#edu_colockbox .colSecond");
$('.colDay').hide();
$('.colTxt_day').hide();
} else {
countDownFn.countDown("2018/05/15 20:00:00", "#edu_colockbox .colDay", "#edu_colockbox .colHour", "#edu_colockbox .colMinute", "#edu_colockbox .colSecond");
$('.colSecond').hide();
$('.colTxt_second').hide();
}
})(countDownFn || {})
});
...全文
854 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-05-15
  • 打赏
  • 举报
回复
引用 8 楼 CSY_Admin 的回复:
引用 7 楼 jslang 的回复:
你要解释什么?代码中的注解已经说明代码的作用了。
里面的内容我都懂!!代码后面跟了个这个有点看不懂(countDownFn || {})
这是为立即执行的函数传递的实参。 countDownFn || {}的意思的。当countDownFn有值时,则返回countDownFn的值,当countDownFn变量未定义或是undefined,0,"",false值时 ,则返回{}
CSY_Admin 2018-05-15
  • 打赏
  • 举报
回复
引用 7 楼 jslang 的回复:
你要解释什么?代码中的注解已经说明代码的作用了。
里面的内容我都懂!!代码后面跟了个这个有点看不懂(countDownFn || {})
天际的海浪 2018-05-15
  • 打赏
  • 举报
回复
你要解释什么?代码中的注解已经说明代码的作用了。
CSY_Admin 2018-05-15
  • 打赏
  • 举报
回复
引用 4 楼 qq_35470953 的回复:
function t(){} 执行 t() t就是这个方法的一个标识(这样理解) 小括号的作用有把一部分东西作为一个整体使用的意思 你可以把前面那个先看成(t)()=(function t(){})() 那么这个t应该就不需要了吧,所以就变成了(function(){})() 然后为什么又使用一个变量去接收这个方法 就js里面 都是弱数据类型,任何类型的数据都可以赋值给一个变量 而且js的数据类型中包含了方法,这里其实就是这样的 var j = (function(){})() 等同于 var j = t();
谢谢懂了
CSY_Admin 2018-05-15
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
[quote=引用 2 楼 CSY_Admin 的回复:] [quote=引用 1 楼 jslang 的回复:] var j=(function(){})() 等同 var f=function(){}; var j=f()
请问下这相当于直接调用f()[/quote]
引用 2 楼 CSY_Admin 的回复:
[quote=引用 1 楼 jslang 的回复:] var j=(function(){})() 等同 var f=function(){}; var j=f()
请问下这相当于直接调用f()[/quote] 对。就是创建一个函数并且立即调用[/quote] 明白了,谢谢, 大佬,能解释下这段代码吗?
  var countDownShow = (function (countDownFn) {
                        var num = new Date("2018/05/15 20:00:00").getTime() - new Date().getTime();
                        num -= 1;
                        var myDay = Math.floor(((num / 1000 ) / 3600) / 24);
 
                        //判断大于一天的时候显示:天时分;小于一天的时候显示:时分秒
                        if (myDay <= 0) {
                            countDownFn.countDown("2018/05/15 20:00:00", "#edu_colockbox .colDay", "#edu_colockbox .colHour", "#edu_colockbox .colMinute", "#edu_colockbox .colSecond");
                            $('.colDay').hide();
                            $('.colTxt_day').hide();
                        } else {
                            countDownFn.countDown("2018/05/15 20:00:00", "#edu_colockbox .colDay", "#edu_colockbox .colHour", "#edu_colockbox .colMinute", "#edu_colockbox .colSecond");
                            $('.colSecond').hide();
                            $('.colTxt_second').hide();
                        }
                    })(countDownFn || {})
无聊的上午 2018-05-15
  • 打赏
  • 举报
回复
function t(){} 执行 t() t就是这个方法的一个标识(这样理解) 小括号的作用有把一部分东西作为一个整体使用的意思 你可以把前面那个先看成(t)()=(function t(){})() 那么这个t应该就不需要了吧,所以就变成了(function(){})() 然后为什么又使用一个变量去接收这个方法 就js里面 都是弱数据类型,任何类型的数据都可以赋值给一个变量 而且js的数据类型中包含了方法,这里其实就是这样的 var j = (function(){})() 等同于 var j = t();
天际的海浪 2018-05-14
  • 打赏
  • 举报
回复
引用 2 楼 CSY_Admin 的回复:
[quote=引用 1 楼 jslang 的回复:] var j=(function(){})() 等同 var f=function(){}; var j=f()
请问下这相当于直接调用f()[/quote]
引用 2 楼 CSY_Admin 的回复:
[quote=引用 1 楼 jslang 的回复:] var j=(function(){})() 等同 var f=function(){}; var j=f()
请问下这相当于直接调用f()[/quote] 对。就是创建一个函数并且立即调用
CSY_Admin 2018-05-14
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
var j=(function(){})() 等同 var f=function(){}; var j=f()
请问下这相当于直接调用f()
天际的海浪 2018-05-14
  • 打赏
  • 举报
回复
var j=(function(){})() 等同 var f=function(){}; var j=f()

87,885

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧