- 主题:JS匿名函数为什么这么写?
这个难道不是为了写一些类似于
var Utility = {};
(function($){
var a = function(){};
var b = 12345;
var c = { a:1, b: a};
// do lots of things
$.a = a;
$.b = b;
})(Utility)
之类的代码。。把很多临时变量封装起来。。
【 在 snnth (love me more) 的大作中提到: 】
: (function() {
: alert(1);
: })();
: ...................
--
FROM 61.135.255.83
... 说来()和!的哪个的结合优先级高?
【 在 modico ().net() 的大作中提到: 】
: 叹号难道不是为了表示强调吗?连用三个,表示极其重要的一段代码。
--
FROM 61.135.255.83
哦,还是()高。。
那三个感叹号不就是false-true-false或者true-false-true转了一圈而已么
【 在 sly9 (= =b) 的大作中提到: 】
: ... 说来()和!的哪个的结合优先级高?
--
FROM 61.135.255.83
哎呀你明白我的意思就好了。。
我当然知道最终是反过来了,不过那个行为实际上没什么意义,不是么
【 在 wangby (佳人红袖慢添香) 的大作中提到: 】
: 电灯的开关按三次,和之前状态一样吗?
--
FROM 61.135.255.83
如果是两个!!还是经常见到的。。
比如经常有一些需要true/false的返回值的函数,会写个
return !!blahblah;
这个blahlah可能是true/false、数字、字符串、undefined、Object、function....
但!!之后就只能是true/false了,而且意义尽可能的贴近所期望的结果。。
【 在 wangby (佳人红袖慢添香) 的大作中提到: 】
: hoho
: 就是疑惑为啥要加个没实际作用的东西上去呢。。。
--
FROM 61.135.255.83
比如这个:prototype对浏览器的判断部分:
Browser: (function(){
var ua = navigator.userAgent;
var isOpera = Object.prototype.toString.call(window.opera) == '[object
Opera]';
return {
IE: !!window.attachEvent && !isOpera,
Opera: isOpera,
WebKit: ua.indexOf('AppleWebKit/') > -1,
Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
MobileSafari: /Apple.*Mobile.*Safari/.test(ua)
}
})()
这么写会很快的。。两个!!比起 == xxx的尺寸还是小一些,而且更省脑子,类似于“存在这么个东西”就算做true,不存在就算false的意思吧
【 在 roy (天上掉大饼:学思行言) 的大作中提到: 】
: 为啥不直接用(blahblah==xxx)呢
: NOT/!应该尽量少用
--
FROM 61.135.255.83