zoukankan      html  css  js  c++  java
  • JS的那些“小事”

    1.在for...Loops中使用hasOwnProperty()方法

    JavaScript数组是没有关联的,可以把它当做哈希表,使用循环来遍历对象属性:

    1. for (var prop in someObject) {  
    2.     alert(someObject[prop]); // alert's value of property  

    然而,存在的问题是for...in loop是在对象属性链上遍历每个枚举类型的属性,如果你只想使用对象实际拥有的属性,这可能有问题的。那怎么解决呢?你可以使用hasOwnProperty()方法。代码如下:

    1. for (var prop in someObject) {  
    2.     if (someObject.hasOwnProperty(prop)) {  
    3.         alert(someObject[prop]); // alert's value of property  
    4.     }  

    2.事件绑定

    在JavaScript中,事件是个复杂的问题。事件冒泡(event bubbling)和委托正在取代内联事件(inline onclick)操作(一些特殊的“初始页”除外)。

    假设你有一个图片网格,需要启动一个modal lightbox窗口。千万不要采取下面的做法,示例采用的是jQuery,如果你使用相似的库或者其他,冒泡机制也同样适合传统的JavaScript。

    相关的HTML代码:

    1. <div id="grid-container"> 
    2.    <a href="someimage.jpg"><img src="someimage-thumb.jpg"></a> 
    3.    <a href="someimage.jpg"><img src="someimage-thumb.jpg"></a> 
    4.    <a href="someimage.jpg"><img src="someimage-thumb.jpg"></a> 
    5.    ...  
    6. </div> 

    不好的JavaScript写法:

    1. $('a').on('click'function() {  
    2.    callLightbox(this);  
    3. }); 

    这段代码假设调用lightbox,里面传递一个anchor元素并且引用全屏图片。与其绑定每个anchor元素还不如直接使用#grid-container元素。

    1. $("#grid-container").on("click""a"function(event) {  
    2.    callLightbox(event.target);  
    3. }); 

    在这段代码中,this和event.target都表示anchor元素。同样你也可以在任何父元素上使用。只要保证所定义的元素是事件目标就行(event's target)。

    以上引自:http://www.csdn.net/article/2012-11-19/2811978-20-All-Too-Common-Coding-Pitfalls-For-Be

  • 相关阅读:
    linux文件锁flock【转】
    无尽的悲伤
    go的临时对象池--sync.Pool
    golang 小知识-持续更新中
    【转】Go Channels
    Golang文件名命名规则
    Parquet存储格式
    预装的Office2016,文件图标表显示以及新建失败问题解决 方法
    Gamma编码及Delta编码概述
    java web开发环境配置系列(二)安装tomcat
  • 原文地址:https://www.cnblogs.com/Denny_Yang/p/2786433.html
Copyright © 2011-2022 走看看