Ajax 板


LINE

Google JavaScript Style Guide http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml 我摘一些重点,理由请自己读原文 @ 变数 一定要使用 var 定义 @ 常数 使用大写字母、底线分隔 NAMES_LIKE_THIS 使用 @const 注解 @ 总是补上分号可以使用巢状函式 (nested function) @ 不要在 block 内定义函式 如 if(check){ function test(){} } (注 block 不能定义 function 跟允许使用 nested function 没有冲突, block 指的是除 function 以外的 {} 之间 ) @ 可以使用 exception ( try-catch) @ 可以使用自定义 exception (custom exception) ( throw ) @ Standards features 总是优先使用标准 feature @ 不要为标准资料型态建立包装 (Wrapper objects for primitive types) 如用 Boolean 封装 true, false ,像这个例子就会造成问题 var x = new Boolean(false); if (x) { alert('hi'); // Shows 'hi'. } @ 不建议使用多层的 prototype 继承链 (Multi-level prototype hierarchies) (但可以用 google closure 的 goog.inherits ) @ 物件成员跟方法的定义 Method and property definitions 建构式定义方式 /** @constructor */ function Foo() { this.bar = value; } 成员定义方式建议使用 Foo.prototype.bar = function() { /* ... */ }; @ 删除物件属性 (delete) 建议使用 this.foo = null. 形式 用 Foo.prototype.dispose = function() { this.property_ = null; }; 但不要用 Foo.prototype.dispose = function() { delete this.property_; }; (因为前者效能比後者快很多) @ Closures 可以使用,但要小心 (memory leak issue) @ eval 只用在读取程式码、 REPL (Read–eval–print loop) @ with :不要使用 @ this :只在建构子或物件函式里面使用 @ for-in loop : 只用来作为列出所有 object 里面的 key 使用 (换言之,不能拿来 iterate 阵列) @ 不要拿 array 来当 object 用 @ 不要用多行字串表达式 Multiline string literals 不要用类似这种的表达法 var str= "line1 \ line2 \ line3 "; @ 使用阵列跟物件表达式 ([],{}) Array and Object literals 比起 new Array() 、建议使用 [] 比起 new Object() 、 建议使用 {} @ 不要修改内建物件的 prototype (Modifying prototypes of builtin objects) @ 不要使用 IE 专用判断式(Internet Explorer's Conditional Comments) 不要用这种判断式 /*@cc_on if(rule) { } */ @ 命名 一般来说,使用 functionNamesLikeThis, function 名称首字小写、骆驼式 variableNamesLikeThis, 变数名称也是首字小写 ClassNamesLikeThis, 类别名称首字大写 EnumNamesLikeThis, Enum 首字大写 methodNamesLikeThis, method 首字小写 CONSTANT_VALUES_LIKE_THIS, 常数全大写、底线分隔 foo.namespaceNamesLikeThis.bar, namespace 首字小写 filenameslikethis.js js 档名全小写 物件属性与资料 private properties 的资料请用底线开头 protected properties 资料不要用底线结尾(跟 public 一样) /* .... 未完...下一篇待续 ....*/ -- 之间的世界,反抗军启蒙军的交集 带着 Android 去旅行、去发现 在身边浑然不觉的 另一个世界。 全世界,都是我们的 足迹与游乐场。 ~ The world around you is not what it seems. ~ http://ingress.tw --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.20.186
1F:推 mrbigmouth:javascript里的protected scope是指? 10/30 13:12
2F:推 s540421:就是由closure存取区域变数吧? 10/30 13:16
3F:→ s540421:不过看文件内要提的应该是命名规则,没强调变数的scope 10/30 13:20
4F:→ TonyQ:protected scope 指的是继承体系下的 protected 10/30 13:37
5F:→ TonyQ:简言之,就是让子类别存取用的变数跟自己使用的变数 10/30 13:37
把 scope 修正为 properties ※ 编辑: TonyQ 来自: 61.230.20.186 (10/30 13:39)
6F:推 mrbigmouth:讲properties我就懂了...scope是要怎麽设protected啊XD 10/30 15:07
7F:→ TonyQ:那是我在 java 世界的习惯讲法啦 XD 10/30 15:45
9F:→ TonyQ:像这篇用的论述,把 member variable设成 protected/private 10/30 15:46
10F:→ TonyQ:不过在 javascript 里面是有名无实就是了,只是标注他是 10/30 15:46
11F:→ TonyQ:private ,不是真的实质上能限制不给人存取,而是要说,你改 10/30 15:46
12F:→ TonyQ:了他我不会负责的,有种改就要有种收拾。XD 10/30 15:46
※ 编辑: TonyQ 来自: 61.230.20.186 (10/30 15:47)
13F:推 mrbigmouth:javascript可以靠closures弄出private效果啦...虽然基 10/30 15:48
14F:→ mrbigmouth:本上不会这样弄....(把method都放closure里面) 10/30 15:49
15F:→ Rplus:推 11/01 02:34
16F:推 lovdkkkk:推 不过命名那边 method 跟 function 的差异是? 11/01 08:37
17F:推 mrbigmouth:method是指挂在物件上的方法 function不是 11/01 09:26
18F:→ mrbigmouth:举例来说 array.forEach是method alert是function 11/01 09:26
19F:推 lovdkkkk:原来如此 @@ 11/01 09:43
20F:推 mrbigmouth:因为js的fn可以乱绑this 这定义可以再严一点 11/01 09:50
21F:→ mrbigmouth:function里有用到this且会因this有变化的才叫method 11/01 09:51
22F:→ TonyQ:上面这个定义太糊了 就意义上的 member function 就行了 11/01 11:22
23F:推 mrbigmouth:嗯 我说的再严一点是我个人的理解 一般论就是我一开始 11/01 14:14
24F:→ mrbigmouth:讲的挂在物件上的都算 11/01 14:14
25F:推 davidsky:alert 也是挂在 window 下面啊= =|| 11/05 19:39
26F:推 mrbigmouth:挂在根物件上的不算吧 11/05 21:21
27F:推 xxxx9659: 推 01/09 15:25







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP