一道面试题,这个要怎么做?
1
ChefIsAwesome 2015 年 8 月 17 日 via Android
闭包。写个会返回另外一个函数的函数就完事了
|
2
aivier 2015 年 8 月 17 日
如果没有 Cookie 和 LocalStorage ,也没有 HTML ,还不能和服务器通讯
....我想不出来 |
3
est 2015 年 8 月 17 日
函数也算全局变量?
|
4
magicdawn 2015 年 8 月 17 日
function count (){
console.log (++count.count ); } count.count = 0; 函数也是可以带属性的,闭包就不说了 |
5
Gonster 2015 年 8 月 17 日 via iPhone
var count = (function (){
var i = 0; return function (){console.log (++i )} })(); |
6
yangg 2015 年 8 月 17 日
console.count ();
|
7
ChefIsAwesome 2015 年 8 月 17 日 via Android
稍微扩展一下。 jQuery 的$是什么,$.ajax 是什么,$.fn 又是什么。
js 基本原理就这些东西了 |
8
zhuangzhuang1988 2015 年 8 月 18 日
简单,定义类啊
|
9
an168bang521 2015 年 8 月 18 日
哥们,这题应该是考查对闭包内的变量控制的;
可以下面这么写的, <script> function test (){ var i=1; return function (){ console.log ("这是您第 "+(i++)+" 次调用 count ()") }; } count=test (); count (); count (); count (); count (); count (); count (); </script> 这个在写 JS 时候很常用的; 还有 4 楼说的添加自定义属性也经常用的,尤其的做定时器 /动画的时候; |
10
an168bang521 2015 年 8 月 18 日
闭包和给函数添加自定义属性都可以;
但是给函数添加自定义属性,在性能上会更好; 因为这里用闭包实现的话。产生的作用域不销毁; 性能不如下面这种添加自定义属性的好 function count2 (){ console.log ("这是您第 "+(++count2.count )+" 次调用 count2 ()"); } count2.count = 0; count2 (); count2 (); count2 (); count2 (); count2 (); count2 (); 这种实现方法比闭包,在性能上好些; |