zoukankan      html  css  js  c++  java
  • jquery的-extend函数

    js的浅拷贝与深拷贝:

    浅拷贝:JS中引用类型使用等号“=” 赋值,相当于把原来对象的地址拷贝一份给新的对象,这样原来旧的对象与新的对象就指向同一个地址,改变其中一个对象就会影响另外那个对象,也就是所谓的浅拷贝。

    深拷贝:所谓”深拷贝”,就是能够实现真正意义上的数组和对象的拷贝。它的实现并不难,只要递归调用”浅拷贝”就行了。指向不同的地址。

    3.代码示例:http://api.jquery.com/jQuery.extend/#jQuery-extend-target-object1-objectN

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>jQuery.extend demo</title>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    </head>
    <body>
     
    <div id="log"></div>
     
    <script>
    var object1 = {
    apple: 0,
    banana: { weight: 52, price: 100 },
    cherry: 97
    };
    var object2 = {
    banana: { price: 200 },
    durian: 100
    };
     
    // Merge object2 into object1
    $.extend( object1, object2 );
     
    // Assuming JSON.stringify - not available in IE<8
    $( "#log" ).append( JSON.stringify( object1 ) );
    </script>
     
    </body>
    </html>
     
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>jQuery.extend demo</title>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    </head>
    <body>
     
    <div id="log"></div>
     
    <script>
    var object1 = {
    apple: 0,
    banana: { weight: 52, price: 100 },
    cherry: 97
    };
    var object2 = {
    banana: { price: 200 },
    durian: 100
    };
     
    // Merge object2 into object1, recursively
    $.extend( true, object1, object2 );
     
    // Assuming JSON.stringify - not available in IE<8
    $( "#log" ).append( JSON.stringify( object1 ) );
    </script>
     
    </body>
    </html>
     
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>jQuery.extend demo</title>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
    </head>
    <body>
     
    <div id="log"></div>
     
    <script>
    var defaults = { validate: false, limit: 5, name: "foo" };
    var options = { validate: true, name: "bar" };
     
    // Merge defaults and options, without modifying defaults
    var settings = $.extend( {}, defaults, options );
     
    // Assuming JSON.stringify - not available in IE<8
    $( "#log" ).append( "<div><b>defaults -- </b>" + JSON.stringify( defaults ) + "</div>" );
    $( "#log" ).append( "<div><b>options -- </b>" + JSON.stringify( options ) + "</div>" );
    $( "#log" ).append( "<div><b>settings -- </b>" + JSON.stringify( settings ) + "</div>" );
    </script>
     
    </body>
    </html>

    3.源码

  • 相关阅读:
    Java过滤器与SpringMVC拦截器之间的关系与区别
    Linux分区,并且把新的分区挂载到指定的文件夹
    HibernateTemplate和HibernateDaoSupport(spring注入问题)
    EJB到底是什么,真的那么神秘吗??
    Hibernate关联关系配置(一对多、一对一和多对多)
    Druid的使用步骤
    Spring MVC静态资源处理(在applicationContex.xml文件中进行配置)
    Spring <context:annotation-config/> 解说
    hibernate的五大接口
    oracle11g数据库的安装以及安装之后的配置
  • 原文地址:https://www.cnblogs.com/Zara/p/6644255.html
Copyright © 2011-2022 走看看