jquery步骤-extend()
jquery方法--extend()
默认情况下,通过$.extend()合并操作不是递归的,当true 作为该函数的第一个参数,那么会在对象上进行递归的合并。**不支持第一个参数传递 false
作用:对于插件开发者希望向 jQuery 中添加新函数时是很有用的。
【合并两个对象,并修改第一个对象:】
【采用递归方式合并两个对象,并修改第一个对象:】
【常用的插件开发模式:合并对象并不改变原有对象】
http://www.css88.com/jqapi-1.9/jQuery.extend/
var object = $.extend({}, object1, object2);
默认情况下,通过$.extend()合并操作不是递归的,当true 作为该函数的第一个参数,那么会在对象上进行递归的合并。**不支持第一个参数传递 false
作用:对于插件开发者希望向 jQuery 中添加新函数时是很有用的。
<div id="log"></div> <script> var object1 = { apple: 0, banana: { weight: 52, price: 100 }, cherry: 97 }; var object2 = { banana: { price: 200 }, durian: 100 };</script>
【合并两个对象,并修改第一个对象:】
$.extend( object1, object2 ); $( "#log" ).append( JSON.stringify( object1 ) ); //{"apple":0,"banana":{"price":200},"cherry":97,"durian":100}
【采用递归方式合并两个对象,并修改第一个对象:】
$.extend( true, object1, object2 ); $( "#log" ).append( JSON.stringify( object1 ) ); //{"apple":0,"banana":{"weight":52,"price":200},"cherry":97,"durian":100}
【常用的插件开发模式:合并对象并不改变原有对象】
<script> var defaults = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; var settings = $.extend( {}, defaults, options ); $( "#log" ).append( "<div><b>defaults -- </b>" + JSON.stringify( defaults ) + "</div>" ); //defaults -- {"validate":false,"limit":5,"name":"foo"} $( "#log" ).append( "<div><b>options -- </b>" + JSON.stringify( options ) + "</div>" ); //options -- {"validate":true,"name":"bar"} $( "#log" ).append( "<div><b>settings -- </b>" + JSON.stringify( settings ) + "</div>" );//settings -- {"validate":true,"limit":5,"name":"bar"} </script>
http://www.css88.com/jqapi-1.9/jQuery.extend/