可以,写的不错
export是ES6的关键字,但不是ES5的关键字,视频录制的时间应该比较早,ES6可能还没有正式发布。
使用的时候加上window,JS在执行之前会有语法检查,语法检查的时候认为export没有定义,挂了,就不再执行的
alert(window.export.getUserId());
哦,我是麻省理工计算机科学博士后研究生毕业后来看这个课程的,通俗易懂,so easy呢。
课程相应的课件没有7,8,9,10的PPT
没有区别,两种写法,看个人习惯
推荐第一种的人多一点,jquery的编写者推荐第二种
function foo(x) { var tmp = 3; return function (y) { alert(tmp + y + x); } } var bar = foo(2); //bar现在就是闭包 bar(10);
可以把闭包理解为函数,是一种‘特殊’点的函数,普通的函数,咱们在函数调用后,函数里面的变量就被js当做垃圾回收,但是闭包就厉害了,在函数调用后,本例是foo(2),仍可以访问函数内部的变量,本例中是foo内部的变量tmp和参数x,由于闭包存在,tmp和x会对js垃圾回收机说:"我是bar函数大哥的小弟,你敢清理我么。" js垃圾回收机就默默走开了。。
那是匿名函数的一个写法,可以选择加括号或者感叹号,这两种格式网上都有。
返回数字,+是把变量里面的值优先输出为数字,而不是字符串
这是属于for循环的知识,i<3的时候一直在循环,i==4的时候退出循环此时全局变量i=4
加上return f2在调用函数f1时返回函数f2,不加则返回undefined;
return f2 在调用f2是形成一个闭包,n在f1执行完后空间会被回收,但被f2捕获,内存空间得到保留,通过f2仍然可以被调用;
不行,我还是厚着脸皮再来一次。
首先,nAdd是全局变量,用nAdd = n的方式是可以吧局部变量暴露出去的,如果nAdd是简单的基本类型,n的每一次变化都需要通过nAdd = n的方式赋值。
第二个,关于n的作用域问题,这里nAdd的作用,形成闭包,局部变量n并不会在执行完result()后销毁而是继续保存在内存中。
是这样,源代码是window.export=export,后面的export指的是“var export={};”这句里的export对象,它是定义在函数体内的局部变量,前面的export指的是window下挂着的全局变量,这样就把内部的export对象暴露出去,在function的外部也可以调用了。 不知道你听明白没有,满意的话给个采纳哈,让我也涨点积分 ^_^
网上没有这个资源,找不到.你可以再百度搜索下资源,如果没有PPT,也可以通过看关于jsOOP这块的博客文章之类的,这样也可以很好的掌握到相关的一些知识点的
i是for循环里的,i<4,意思就是div1,div2,div3.
即document.getElementById('div1')、document.getElementById('div2')、document.getElementById('div3')
addEventListener DOM2级操作方法,可以同时绑定多个事件,在这里为每个div绑定了click事件,可以去搜下addEventListener
由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不要滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。
立即执行函数.
~function(){console.info(1)}()
!function(){console.info(2)}()
(function(){console.info(3)})()
三种方式都一样.
console.log输出在控制台,在F12的console里
加“!”表示立即执行函数。
在function前加“!”或是“+”、“-”,用“()”包裹、甚至是逗号都可以起到函数定义后立即执行的效果,意在将函数声明转换为函数表达式。(立即执行函数必须是函数表达式,而不能是函数声明)
在BOSN老师的课程7-2章节3分08秒有讲到的~
详细了解立即执行函数戳我(这个博主写的很好,直接搬运的啦~)
(function(){
var _userId = 23492;
var _typeId = 'item';
var export1 = {};
function converter(userId){
return +userId;
}
export1.getUserId = function(){
return converter(_userId);
}
export1.getTypeId=function(){
return _typeId;
}
window.export=export1;
}());
window.export.getUserId();
window.export.getTypeId();
window.export._userId;
window.export._typeId;
window.export.converter;
export报错提示是这个单词是个关键字。改成如上所示即可。
变成全局的了
for(var i=1;i<4;i++) 这是一个循环,三次循环i=1,i=2,i=3直到i++到 i=4了,不满足条件了,退出。但是i=4会当做全局变量保存,所有用户点击div会访问到i=4的情况。
func不是数字,注意func是一个函数对象,调用之后才返回了30的结果。
。。。。。不至于。。。。。谢罪。。。不要酱紫夸张。
多思考挺好的,不过记得要多动手哇!!!很多问题,只要自己几秒钟跑一下就知道了。
这是深入浅出高级课,没一点基础。。。。还是先去看看基础