{"id":1377,"date":"2024-06-02T22:28:51","date_gmt":"2024-06-02T22:28:51","guid":{"rendered":""},"modified":"2024-06-05T03:09:46","modified_gmt":"2024-06-04T19:09:46","slug":"javascript%e4%b8%93%e9%a2%98%e4%b9%8b%e4%bb%8e%e9%9b%b6%e5%ae%9e%e7%8e%b0jquery%e7%9a%84extend","status":"publish","type":"post","link":"https:\/\/www.lccc.top\/?p=1377","title":{"rendered":"JavaScript\u4e13\u9898\u4e4b\u4ece\u96f6\u5b9e\u73b0jQuery\u7684extend"},"content":{"rendered":"<td class=\"d-block comment-body markdown-body  js-comment-body\">\n<h2 dir=\"auto\">\u524d\u8a00<\/h2>\n<p dir=\"auto\">jQuery \u7684 extend \u662f jQuery \u4e2d\u5e94\u7528\u975e\u5e38\u591a\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u4eca\u5929\u6211\u4eec\u4e00\u8fb9\u770b jQuery \u7684 extend \u7684\u7279\u6027\uff0c\u4e00\u8fb9\u5b9e\u73b0\u4e00\u4e2a extend!<\/p>\n<h2 dir=\"auto\">extend \u57fa\u672c\u7528\u6cd5<\/h2>\n<p dir=\"auto\">\u5148\u6765\u770b\u770b extend \u7684\u529f\u80fd\uff0c\u5f15\u7528 jQuery \u5b98\u7f51\uff1a<\/p>\n<blockquote>\n<p dir=\"auto\">Merge the contents of two or more objects together into the first object.<\/p>\n<\/blockquote>\n<p dir=\"auto\">\u7ffb\u8bd1\u8fc7\u6765\u5c31\u662f\uff0c\u5408\u5e76\u4e24\u4e2a\u6216\u8005\u66f4\u591a\u7684\u5bf9\u8c61\u7684\u5185\u5bb9\u5230\u7b2c\u4e00\u4e2a\u5bf9\u8c61\u4e2d\u3002<\/p>\n<p dir=\"auto\">\u8ba9\u6211\u4eec\u770b\u770b extend \u7684\u7528\u6cd5\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"jQuery.extend( target [, object1 ] [, objectN ] )\">\n<pre class=\"notranslate\"><span class=\"pl-s1\">jQuery<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-kos\">[<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">object1<\/span> <span class=\"pl-kos\">]<\/span> <span class=\"pl-kos\">[<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">objectN<\/span> <span class=\"pl-kos\">]<\/span> <span class=\"pl-kos\">)<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u7b2c\u4e00\u4e2a\u53c2\u6570 target\uff0c\u8868\u793a\u8981\u62d3\u5c55\u7684\u76ee\u6807\uff0c\u6211\u4eec\u5c31\u79f0\u5b83\u4e3a\u76ee\u6807\u5bf9\u8c61\u5427\u3002<\/p>\n<p dir=\"auto\">\u540e\u9762\u7684\u53c2\u6570\uff0c\u90fd\u4f20\u5165\u5bf9\u8c61\uff0c\u5185\u5bb9\u90fd\u4f1a\u590d\u5236\u5230\u76ee\u6807\u5bf9\u8c61\u4e2d\uff0c\u6211\u4eec\u5c31\u79f0\u5b83\u4eec\u4e3a\u5f85\u590d\u5236\u5bf9\u8c61\u5427\u3002<\/p>\n<p dir=\"auto\">\u4e3e\u4e2a\u4f8b\u5b50\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var obj1 = {\n    a: 1,\n    b: { b1: 1, b2: 2 }\n};\n\nvar obj2 = {\n    b: { b1: 3, b3: 4 },\n    c: 3\n};\n\nvar obj3 = {\n    d: 4\n}\n\nconsole.log($.extend(obj1, obj2, obj3));\n\n\/\/ {\n\/\/    a: 1,\n\/\/    b: { b1: 3, b3: 4 },\n\/\/    c: 3,\n\/\/    d: 4\n\/\/ }\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj1<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">a<\/span>: <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span> <span class=\"pl-c1\">b1<\/span>: <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">b2<\/span>: <span class=\"pl-c1\">2<\/span> <span class=\"pl-kos\">}<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj2<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span> <span class=\"pl-c1\">b1<\/span>: <span class=\"pl-c1\">3<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">b3<\/span>: <span class=\"pl-c1\">4<\/span> <span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">,<\/span>\n    <span class=\"pl-c1\">c<\/span>: <span class=\"pl-c1\">3<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj3<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">d<\/span>: <span class=\"pl-c1\">4<\/span>\n<span class=\"pl-kos\">}<\/span>\n\n<span class=\"pl-smi\">console<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">log<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">$<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">obj1<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj2<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj3<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-c\">\/\/ {<\/span>\n<span class=\"pl-c\">\/\/    a: 1,<\/span>\n<span class=\"pl-c\">\/\/    b: { b1: 3, b3: 4 },<\/span>\n<span class=\"pl-c\">\/\/    c: 3,<\/span>\n<span class=\"pl-c\">\/\/    d: 4<\/span>\n<span class=\"pl-c\">\/\/ }<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u5f53\u4e24\u4e2a\u5bf9\u8c61\u51fa\u73b0\u76f8\u540c\u5b57\u6bb5\u7684\u65f6\u5019\uff0c\u540e\u8005\u4f1a\u8986\u76d6\u524d\u8005\uff0c\u800c\u4e0d\u4f1a\u8fdb\u884c\u6df1\u5c42\u6b21\u7684\u8986\u76d6\u3002<\/p>\n<h2 dir=\"auto\">extend \u7b2c\u4e00\u7248<\/h2>\n<p dir=\"auto\">\u7ed3\u5408\u7740\u4e0a\u7bc7\u5199\u5f97 <a href=\"https:\/\/github.com\/mqyqingfeng\/Blog\/issues\/32\" data-hovercard-type=\"issue\" data-hovercard-url=\"\/mqyqingfeng\/Blog\/issues\/32\/hovercard\">\u300aJavaScript\u4e13\u9898\u4e4b\u6df1\u6d45\u62f7\u8d1d\u300b<\/a>\uff0c\u6211\u4eec\u5c1d\u8bd5\u7740\u81ea\u5df1\u5199\u4e00\u4e2a extend \u51fd\u6570\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\/\/ \u7b2c\u4e00\u7248\nfunction extend() {\n    var name, options, copy;\n    var length = arguments.length;\n    var i = 1;\n    var target = arguments[0];\n\n    for (; i &lt; length; i++) {\n        options = arguments[i];\n        if (options != null) {\n            for (name in options) {\n                copy = options[name];\n                if (copy !== undefined){\n                    target[name] = copy;\n                }\n            }\n        }\n    }\n\n    return target;\n};\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-c\">\/\/ \u7b2c\u4e00\u7248<\/span>\n<span class=\"pl-k\">function<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">length<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">length<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">i<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">0<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n\n    <span class=\"pl-k\">for<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">;<\/span> <span class=\"pl-s1\">i<\/span> <span class=\"pl-c1\">&lt;<\/span> <span class=\"pl-s1\">length<\/span><span class=\"pl-kos\">;<\/span> <span class=\"pl-s1\">i<\/span><span class=\"pl-c1\">++<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-s1\">options<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">i<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">options<\/span> <span class=\"pl-c1\">!=<\/span> <span class=\"pl-c1\">null<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n            <span class=\"pl-k\">for<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">name<\/span> <span class=\"pl-k\">in<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-c1\">undefined<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">{<\/span>\n                    <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-kos\">}<\/span>\n            <span class=\"pl-kos\">}<\/span>\n        <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-kos\">}<\/span>\n\n    <span class=\"pl-k\">return<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span><\/pre>\n<\/div>\n<h2 dir=\"auto\">extend \u6df1\u62f7\u8d1d<\/h2>\n<p dir=\"auto\">\u90a3\u5982\u4f55\u8fdb\u884c\u6df1\u5c42\u6b21\u7684\u590d\u5236\u5462\uff1fjQuery v1.1.4 \u52a0\u5165\u4e86\u4e00\u4e2a\u65b0\u7684\u7528\u6cd5\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"jQuery.extend( [deep], target, object1 [, objectN ] )\">\n<pre class=\"notranslate\"><span class=\"pl-s1\">jQuery<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span> <span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">deep<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">object1<\/span> <span class=\"pl-kos\">[<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">objectN<\/span> <span class=\"pl-kos\">]<\/span> <span class=\"pl-kos\">)<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u4e5f\u5c31\u662f\u8bf4\uff0c\u51fd\u6570\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u53ef\u4ee5\u4f20\u4e00\u4e2a\u5e03\u5c14\u503c\uff0c\u5982\u679c\u4e3a true\uff0c\u6211\u4eec\u5c31\u4f1a\u8fdb\u884c\u6df1\u62f7\u8d1d\uff0cfalse \u4f9d\u7136\u5f53\u505a\u6d45\u62f7\u8d1d\uff0c\u8fd9\u4e2a\u65f6\u5019\uff0ctarget \u5c31\u5f80\u540e\u79fb\u52a8\u5230\u7b2c\u4e8c\u4e2a\u53c2\u6570\u3002<\/p>\n<p dir=\"auto\">\u8fd8\u662f\u4e3e\u8fd9\u4e2a\u4f8b\u5b50\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var obj1 = {\n    a: 1,\n    b: { b1: 1, b2: 2 }\n};\n\nvar obj2 = {\n    b: { b1: 3, b3: 4 },\n    c: 3\n};\n\nvar obj3 = {\n    d: 4\n}\n\nconsole.log($.extend(true, obj1, obj2, obj3));\n\n\/\/ {\n\/\/    a: 1,\n\/\/    b: { b1: 3, b2: 2, b3: 4 },\n\/\/    c: 3,\n\/\/    d: 4\n\/\/ }\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj1<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">a<\/span>: <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span> <span class=\"pl-c1\">b1<\/span>: <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">b2<\/span>: <span class=\"pl-c1\">2<\/span> <span class=\"pl-kos\">}<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj2<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span> <span class=\"pl-c1\">b1<\/span>: <span class=\"pl-c1\">3<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">b3<\/span>: <span class=\"pl-c1\">4<\/span> <span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">,<\/span>\n    <span class=\"pl-c1\">c<\/span>: <span class=\"pl-c1\">3<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj3<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">d<\/span>: <span class=\"pl-c1\">4<\/span>\n<span class=\"pl-kos\">}<\/span>\n\n<span class=\"pl-smi\">console<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">log<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">$<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj1<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj2<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj3<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-c\">\/\/ {<\/span>\n<span class=\"pl-c\">\/\/    a: 1,<\/span>\n<span class=\"pl-c\">\/\/    b: { b1: 3, b2: 2, b3: 4 },<\/span>\n<span class=\"pl-c\">\/\/    c: 3,<\/span>\n<span class=\"pl-c\">\/\/    d: 4<\/span>\n<span class=\"pl-c\">\/\/ }<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u56e0\u4e3a\u91c7\u7528\u4e86\u6df1\u62f7\u8d1d\uff0c\u4f1a\u904d\u5386\u5230\u66f4\u6df1\u7684\u5c42\u6b21\u8fdb\u884c\u6dfb\u52a0\u548c\u8986\u76d6\u3002<\/p>\n<h2 dir=\"auto\">extend \u7b2c\u4e8c\u7248<\/h2>\n<p dir=\"auto\">\u6211\u4eec\u6765\u5b9e\u73b0\u6df1\u62f7\u8d1d\u7684\u529f\u80fd\uff0c\u503c\u5f97\u6ce8\u610f\u7684\u662f\uff1a<\/p>\n<ol dir=\"auto\">\n<li>\u9700\u8981\u6839\u636e\u7b2c\u4e00\u4e2a\u53c2\u6570\u7684\u7c7b\u578b\uff0c\u786e\u5b9a target \u548c\u8981\u5408\u5e76\u7684\u5bf9\u8c61\u7684\u4e0b\u6807\u8d77\u59cb\u503c\u3002<\/li>\n<li>\u5982\u679c\u662f\u6df1\u62f7\u8d1d\uff0c\u6839\u636e copy \u7684\u7c7b\u578b\u9012\u5f52 extend\u3002<\/li>\n<\/ol>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\/\/ \u7b2c\u4e8c\u7248\nfunction extend() {\n    \/\/ \u9ed8\u8ba4\u4e0d\u8fdb\u884c\u6df1\u62f7\u8d1d\n    var deep = false;\n    var name, options, src, copy;\n    var length = arguments.length;\n    \/\/ \u8bb0\u5f55\u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u4e0b\u6807\n    var i = 1;\n    \/\/ \u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u4f20\u5e03\u5c14\u503c\u7684\u60c5\u51b5\u4e0b\uff0ctarget\u9ed8\u8ba4\u662f\u7b2c\u4e00\u4e2a\u53c2\u6570\n    var target = arguments[0] || {};\n    \/\/ \u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u5e03\u5c14\u503c\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u624d\u662ftarget\n    if (typeof target == 'boolean') {\n        deep = target;\n        target = arguments[i] || {};\n        i++;\n    }\n    \/\/ \u5982\u679ctarget\u4e0d\u662f\u5bf9\u8c61\uff0c\u6211\u4eec\u662f\u65e0\u6cd5\u8fdb\u884c\u590d\u5236\u7684\uff0c\u6240\u4ee5\u8bbe\u4e3a{}\n    if (typeof target !== 'object') {\n        target = {}\n    }\n\n    \/\/ \u5faa\u73af\u904d\u5386\u8981\u590d\u5236\u7684\u5bf9\u8c61\u4eec\n    for (; i &lt; length; i++) {\n        \/\/ \u83b7\u53d6\u5f53\u524d\u5bf9\u8c61\n        options = arguments[i];\n        \/\/ \u8981\u6c42\u4e0d\u80fd\u4e3a\u7a7a \u907f\u514dextend(a,,b)\u8fd9\u79cd\u60c5\u51b5\n        if (options != null) {\n            for (name in options) {\n                \/\/ \u76ee\u6807\u5c5e\u6027\u503c\n                src = target[name];\n                \/\/ \u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\n                copy = options[name];\n\n                if (deep &amp;&amp; copy &amp;&amp; typeof copy == 'object') {\n                    \/\/ \u9012\u5f52\u8c03\u7528\n                    target[name] = extend(deep, src, copy);\n                }\n                else if (copy !== undefined){\n                    target[name] = copy;\n                }\n            }\n        }\n    }\n\n    return target;\n};\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-c\">\/\/ \u7b2c\u4e8c\u7248<\/span>\n<span class=\"pl-k\">function<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c\">\/\/ \u9ed8\u8ba4\u4e0d\u8fdb\u884c\u6df1\u62f7\u8d1d<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">deep<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">false<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">length<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">length<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-c\">\/\/ \u8bb0\u5f55\u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u4e0b\u6807<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">i<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-c\">\/\/ \u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u4f20\u5e03\u5c14\u503c\u7684\u60c5\u51b5\u4e0b\uff0ctarget\u9ed8\u8ba4\u662f\u7b2c\u4e00\u4e2a\u53c2\u6570<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">0<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">||<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-c\">\/\/ \u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u5e03\u5c14\u503c\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u624d\u662ftarget<\/span>\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-k\">typeof<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">==<\/span> <span class=\"pl-s\">'boolean'<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-s1\">deep<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">i<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">||<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-s1\">i<\/span><span class=\"pl-c1\">++<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-c\">\/\/ \u5982\u679ctarget\u4e0d\u662f\u5bf9\u8c61\uff0c\u6211\u4eec\u662f\u65e0\u6cd5\u8fdb\u884c\u590d\u5236\u7684\uff0c\u6240\u4ee5\u8bbe\u4e3a{}<\/span>\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-k\">typeof<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-s\">'object'<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-kos\">}<\/span>\n\n    <span class=\"pl-c\">\/\/ \u5faa\u73af\u904d\u5386\u8981\u590d\u5236\u7684\u5bf9\u8c61\u4eec<\/span>\n    <span class=\"pl-k\">for<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">;<\/span> <span class=\"pl-s1\">i<\/span> <span class=\"pl-c1\">&lt;<\/span> <span class=\"pl-s1\">length<\/span><span class=\"pl-kos\">;<\/span> <span class=\"pl-s1\">i<\/span><span class=\"pl-c1\">++<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-c\">\/\/ \u83b7\u53d6\u5f53\u524d\u5bf9\u8c61<\/span>\n        <span class=\"pl-s1\">options<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">i<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-c\">\/\/ \u8981\u6c42\u4e0d\u80fd\u4e3a\u7a7a \u907f\u514dextend(a,,b)\u8fd9\u79cd\u60c5\u51b5<\/span>\n        <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">options<\/span> <span class=\"pl-c1\">!=<\/span> <span class=\"pl-c1\">null<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n            <span class=\"pl-k\">for<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">name<\/span> <span class=\"pl-k\">in<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                <span class=\"pl-c\">\/\/ \u76ee\u6807\u5c5e\u6027\u503c<\/span>\n                <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-c\">\/\/ \u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u5c5e\u6027\u503c<\/span>\n                <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n\n                <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">deep<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-k\">typeof<\/span> <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">==<\/span> <span class=\"pl-s\">'object'<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                    <span class=\"pl-c\">\/\/ \u9012\u5f52\u8c03\u7528<\/span>\n                    <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">deep<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-kos\">}<\/span>\n                <span class=\"pl-k\">else<\/span> <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-c1\">undefined<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">{<\/span>\n                    <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-kos\">}<\/span>\n            <span class=\"pl-kos\">}<\/span>\n        <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-kos\">}<\/span>\n\n    <span class=\"pl-k\">return<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u5728\u5b9e\u73b0\u4e0a\uff0c\u6838\u5fc3\u7684\u90e8\u5206\u8fd8\u662f\u8ddf\u4e0a\u7bc7\u5b9e\u73b0\u7684\u6df1\u6d45\u62f7\u8d1d\u51fd\u6570\u4e00\u81f4\uff0c\u5982\u679c\u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\u662f\u4e00\u4e2a\u5bf9\u8c61\uff0c\u5c31\u9012\u5f52\u8c03\u7528 extend\u3002\u4e0d\u8fc7 extend \u7684\u5b9e\u73b0\u4e2d\uff0c\u591a\u4e86\u5f88\u591a\u7ec6\u8282\u4e0a\u7684\u5224\u65ad\uff0c\u6bd4\u5982\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u5426\u662f\u5e03\u5c14\u503c\uff0ctarget \u662f\u5426\u662f\u4e00\u4e2a\u5bf9\u8c61\uff0c\u4e0d\u4f20\u53c2\u6570\u65f6\u7684\u9ed8\u8ba4\u503c\u7b49\u3002<\/p>\n<p dir=\"auto\">\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u770b\u51e0\u4e2a jQuery \u7684 extend \u4f7f\u7528\u6548\u679c\uff1a<\/p>\n<h2 dir=\"auto\">target \u662f\u51fd\u6570<\/h2>\n<p dir=\"auto\">\u5728\u6211\u4eec\u7684\u5b9e\u73b0\u4e2d\uff0c<code class=\"notranslate\">typeof target<\/code> \u5fc5\u987b\u7b49\u4e8e <code class=\"notranslate\">object<\/code>\uff0c\u6211\u4eec\u624d\u4f1a\u5728\u8fd9\u4e2a <code class=\"notranslate\">target<\/code> \u57fa\u7840\u4e0a\u8fdb\u884c\u62d3\u5c55\uff0c\u7136\u800c\u6211\u4eec\u7528 <code class=\"notranslate\">typeof<\/code> \u5224\u65ad\u4e00\u4e2a\u51fd\u6570\u65f6\uff0c\u4f1a\u8fd4\u56de<code class=\"notranslate\">function<\/code>\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u6211\u4eec\u65e0\u6cd5\u5728\u4e00\u4e2a\u51fd\u6570\u4e0a\u8fdb\u884c\u62d3\u5c55\uff01<\/p>\n<p dir=\"auto\">\u4ec0\u4e48\uff0c\u6211\u4eec\u8fd8\u80fd\u5728\u4e00\u4e2a\u51fd\u6570\u4e0a\u8fdb\u884c\u62d3\u5c55\uff01\uff01<\/p>\n<p dir=\"auto\">\u5f53\u7136\u5566\uff0c\u6bd5\u7adf\u51fd\u6570\u4e5f\u662f\u4e00\u79cd\u5bf9\u8c61\u561b\uff0c\u8ba9\u6211\u4eec\u770b\u4e2a\u4f8b\u5b50\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"function a() {}\n\na.target = 'b';\n\nconsole.log(a.target); \/\/ b\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">function<\/span> <span class=\"pl-en\">a<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span>\n\n<span class=\"pl-s1\">a<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s\">'b'<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-smi\">console<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">log<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">a<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">target<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span> <span class=\"pl-c\">\/\/ b<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u5b9e\u9645\u4e0a\uff0c\u5728 underscore \u7684\u5b9e\u73b0\u4e2d\uff0cunderscore \u7684\u5404\u79cd\u65b9\u6cd5\u4fbf\u662f\u6302\u5728\u4e86\u51fd\u6570\u4e0a\uff01<\/p>\n<p dir=\"auto\">\u6240\u4ee5\u5728\u8fd9\u91cc\u6211\u4eec\u8fd8\u8981\u5224\u65ad\u662f\u4e0d\u662f\u51fd\u6570\uff0c\u8fd9\u65f6\u5019\u6211\u4eec\u4fbf\u53ef\u4ee5\u4f7f\u7528<a href=\"https:\/\/github.com\/mqyqingfeng\/Blog\/issues\/28\" data-hovercard-type=\"issue\" data-hovercard-url=\"\/mqyqingfeng\/Blog\/issues\/28\/hovercard\">\u300aJavaScript\u4e13\u9898\u4e4b\u7c7b\u578b\u5224\u65ad(\u4e0a)\u300b<\/a>\u4e2d\u5199\u5f97 isFunction \u51fd\u6570<\/p>\n<p dir=\"auto\">\u6211\u4eec\u8fd9\u6837\u4fee\u6539\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content='if (typeof target !== \"object\" &amp;&amp; !isFunction(target)) {\n    target = {};\n}'><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-k\">typeof<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-s\">\"object\"<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-c1\">!<\/span><span class=\"pl-en\">isFunction<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-kos\">}<\/span><\/pre>\n<\/div>\n<h2 dir=\"auto\">\u7c7b\u578b\u4e0d\u4e00\u81f4<\/h2>\n<p dir=\"auto\">\u5176\u5b9e\u6211\u4eec\u5b9e\u73b0\u7684\u65b9\u6cd5\u6709\u4e2a\u5c0f bug \uff0c\u4e0d\u4fe1\u6211\u4eec\u5199\u4e2a demo:<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var obj1 = {\n    a: 1,\n    b: {\n        c: 2\n    }\n}\n\nvar obj2 = {\n    b: {\n        c: [5],\n\n    }\n}\n\nvar d = extend(true, obj1, obj2)\nconsole.log(d);\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj1<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">a<\/span>: <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-c1\">c<\/span>: <span class=\"pl-c1\">2<\/span>\n    <span class=\"pl-kos\">}<\/span>\n<span class=\"pl-kos\">}<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj2<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-c1\">c<\/span>: <span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">5<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">,<\/span>\n\n    <span class=\"pl-kos\">}<\/span>\n<span class=\"pl-kos\">}<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">d<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj1<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj2<\/span><span class=\"pl-kos\">)<\/span>\n<span class=\"pl-smi\">console<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">log<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">d<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u6211\u4eec\u9884\u671f\u4f1a\u8fd4\u56de\u8fd9\u6837\u4e00\u4e2a\u5bf9\u8c61\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    a: 1,\n    b: {\n        c: [5]\n    }\n}\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">a<\/span>: <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-c1\">c<\/span>: <span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">5<\/span><span class=\"pl-kos\">]<\/span>\n    <span class=\"pl-kos\">}<\/span>\n<span class=\"pl-kos\">}<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u7136\u800c\u8fd4\u56de\u4e86\u8fd9\u6837\u4e00\u4e2a\u5bf9\u8c61:<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{\n    a: 1,\n    b: {\n        c: {\n            0: 5\n        }\n    }\n}\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">a<\/span>: <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span>\n    <span class=\"pl-c1\">b<\/span>: <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-c1\">c<\/span>: <span class=\"pl-kos\">{<\/span>\n            <span class=\"pl-c1\">0<\/span>: <span class=\"pl-c1\">5<\/span>\n        <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-kos\">}<\/span>\n<span class=\"pl-kos\">}<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u8ba9\u6211\u4eec\u7ec6\u7ec6\u5206\u6790\u4e3a\u4ec0\u4e48\u4f1a\u5bfc\u81f4\u8fd9\u79cd\u60c5\u51b5\uff1a<\/p>\n<p dir=\"auto\">\u9996\u5148\u6211\u4eec\u5728\u51fd\u6570\u7684\u5f00\u59cb\u5199\u4e00\u4e2a console \u51fd\u6570\u6bd4\u5982\uff1aconsole.log(1)\uff0c\u7136\u540e\u4ee5\u4e0a\u9762\u8fd9\u4e2a demo \u4e3a\u4f8b\uff0c\u6267\u884c\u4e00\u4e0b\uff0c\u6211\u4eec\u4f1a\u53d1\u73b0 1 \u6253\u5370\u4e86\u4e09\u6b21\uff0c\u8fd9\u5c31\u662f\u8bf4 extend \u51fd\u6570\u6267\u884c\u4e86\u4e09\u904d\uff0c\u8ba9\u6211\u4eec\u634b\u4e00\u634b\u8fd9\u4e09\u904d\u4f20\u5165\u7684\u53c2\u6570\uff1a<\/p>\n<p dir=\"auto\">\u7b2c\u4e00\u904d\u6267\u884c\u5230\u9012\u5f52\u8c03\u7528\u65f6\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var src = { c: 2 };\nvar copy = { c: [5]};\n\ntarget[name] = extend(true, src, copy);\n\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-c1\">c<\/span>: <span class=\"pl-c1\">2<\/span> <span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span> <span class=\"pl-c1\">c<\/span>: <span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">5<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u7b2c\u4e8c\u904d\u6267\u884c\u5230\u9012\u5f52\u8c03\u7528\u65f6\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var src = 2;\nvar copy = [5];\n\ntarget[name] = extend(true, src, copy);\n\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">2<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">5<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u7b2c\u4e09\u904d\u8fdb\u884c\u6700\u7ec8\u7684\u8d4b\u503c\uff0c\u56e0\u4e3a src \u662f\u4e00\u4e2a\u57fa\u672c\u7c7b\u578b\uff0c\u6211\u4eec\u9ed8\u8ba4\u4f7f\u7528\u4e00\u4e2a\u7a7a\u5bf9\u8c61\u4f5c\u4e3a\u76ee\u6807\u503c\uff0c\u6240\u4ee5\u6700\u7ec8\u7684\u7ed3\u679c\u5c31\u53d8\u6210\u4e86\u5bf9\u8c61\u7684\u5c5e\u6027\uff01<\/p>\n<p dir=\"auto\">\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u6211\u4eec\u9700\u8981\u5bf9\u76ee\u6807\u5c5e\u6027\u503c\u548c\u5f85\u590d\u5236\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\u8fdb\u884c\u5224\u65ad\uff1a<\/p>\n<p dir=\"auto\">\u5224\u65ad\u76ee\u6807\u5c5e\u6027\u503c\u8ddf\u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\u7c7b\u578b\u662f\u5426\u4e00\u81f4:<\/p>\n<ul dir=\"auto\">\n<li>\n<p dir=\"auto\">\u5982\u679c\u5f85\u590d\u5236\u5bf9\u8c61\u5c5e\u6027\u503c\u7c7b\u578b\u4e3a\u6570\u7ec4\uff0c\u76ee\u6807\u5c5e\u6027\u503c\u7c7b\u578b\u4e0d\u4e3a\u6570\u7ec4\u7684\u8bdd\uff0c\u76ee\u6807\u5c5e\u6027\u503c\u5c31\u8bbe\u4e3a []<\/p>\n<\/li>\n<li>\n<p dir=\"auto\">\u5982\u679c\u5f85\u590d\u5236\u5bf9\u8c61\u5c5e\u6027\u503c\u7c7b\u578b\u4e3a\u5bf9\u8c61\uff0c\u76ee\u6807\u5c5e\u6027\u503c\u7c7b\u578b\u4e0d\u4e3a\u5bf9\u8c61\u7684\u8bdd\uff0c\u76ee\u6807\u5c5e\u6027\u503c\u5c31\u8bbe\u4e3a {}<\/p>\n<\/li>\n<\/ul>\n<p dir=\"auto\">\u7ed3\u5408\u7740<a href=\"https:\/\/github.com\/mqyqingfeng\/Blog\/issues\/30\" data-hovercard-type=\"issue\" data-hovercard-url=\"\/mqyqingfeng\/Blog\/issues\/30\/hovercard\">\u300aJavaScript\u4e13\u9898\u4e4b\u7c7b\u578b\u5224\u65ad(\u4e0b)\u300b<\/a>\u4e2d\u7684 isPlainObject \u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u5bf9\u7c7b\u578b\u8fdb\u884c\u66f4\u7ec6\u81f4\u7684\u5212\u5206\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\nvar clone, copyIsArray;\n\n...\n\nif (deep &amp;&amp; copy &amp;&amp; (isPlainObject(copy) ||\n        (copyIsArray = Array.isArray(copy)))) {\n\n    if (copyIsArray) {\n        copyIsArray = false;\n        clone = src &amp;&amp; Array.isArray(src) ? src : [];\n\n    } else {\n        clone = src &amp;&amp; isPlainObject(src) ? src : {};\n    }\n\n    target[name] = extend(deep, clone, copy);\n\n} else if (copy !== undefined) {\n    target[name] = copy;\n}\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">clone<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copyIsArray<\/span><span class=\"pl-kos\">;<\/span>\n\n...\n\n<span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">deep<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-en\">isPlainObject<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c1\">||<\/span>\n        <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copyIsArray<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-v\">Array<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">isArray<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copyIsArray<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-s1\">copyIsArray<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">false<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-s1\">clone<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-v\">Array<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">isArray<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">)<\/span> ? <span class=\"pl-s1\">src<\/span> : <span class=\"pl-kos\">[<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n\n    <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">else<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-s1\">clone<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-en\">isPlainObject<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">)<\/span> ? <span class=\"pl-s1\">src<\/span> : <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-kos\">}<\/span>\n\n    <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">deep<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">clone<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">else<\/span> <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-c1\">undefined<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-kos\">}<\/span><\/pre>\n<\/div>\n<h2 dir=\"auto\">\u5faa\u73af\u5f15\u7528<\/h2>\n<p dir=\"auto\">\u5b9e\u9645\u4e0a\uff0c\u6211\u4eec\u8fd8\u53ef\u80fd\u9047\u5230\u4e00\u4e2a\u5faa\u73af\u5f15\u7528\u7684\u95ee\u9898\uff0c\u4e3e\u4e2a\u4f8b\u5b50\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var a = {name : b};\nvar b = {name : a}\nvar c = extend(a, b);\nconsole.log(c);\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">a<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-c1\">name<\/span> : <span class=\"pl-s1\">b<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">b<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-c1\">name<\/span> : <span class=\"pl-s1\">a<\/span><span class=\"pl-kos\">}<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">c<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">a<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">b<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-smi\">console<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">log<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">c<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">\u6211\u4eec\u4f1a\u5f97\u5230\u4e00\u4e2a\u53ef\u4ee5\u65e0\u9650\u5c55\u5f00\u7684\u5bf9\u8c61\uff0c\u7c7b\u4f3c\u4e8e\u8fd9\u6837\uff1a<\/p>\n<p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"\/\/www.lccc.top\/wp-content\/uploads\/pic\/mqyqingfen\/be9ce0266cecf6d76ae5c018a7fb6a19a53fb4ef.jpg\"><img decoding=\"async\" src=\"\/\/www.lccc.top\/wp-content\/uploads\/pic\/mqyqingfen\/be9ce0266cecf6d76ae5c018a7fb6a19a53fb4ef.jpg\" alt=\"\u5faa\u73af\u5f15\u7528\u5bf9\u8c61\" data-canonical-src=\"https:\/\/cdn.jsdelivr.net\/gh\/mqyqingfeng\/Blog\/Images\/extend\/extend1.png\" style=\"max-width: 100%;\"><\/a><\/p>\n<p dir=\"auto\">\u4e3a\u4e86\u907f\u514d\u8fd9\u4e2a\u95ee\u9898\uff0c\u6211\u4eec\u9700\u8981\u5224\u65ad\u8981\u590d\u5236\u7684\u5bf9\u8c61\u5c5e\u6027\u662f\u5426\u7b49\u4e8e target\uff0c\u5982\u679c\u7b49\u4e8e\uff0c\u6211\u4eec\u5c31\u8df3\u8fc7\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"...\nsrc = target[name];\ncopy = options[name];\n\nif (target === copy) {\n    continue;\n}\n...\"><\/p>\n<pre class=\"notranslate\">...\n<span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">===<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-k\">continue<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-kos\">}<\/span>\n...<\/pre>\n<\/div>\n<p dir=\"auto\">\u5982\u679c\u52a0\u4e0a\u8fd9\u53e5\uff0c\u7ed3\u679c\u5c31\u4f1a\u662f\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"{name: undefined}\">\n<pre class=\"notranslate\"><span class=\"pl-kos\">{<\/span><span class=\"pl-c1\">name<\/span>: <span class=\"pl-c1\">undefined<\/span><span class=\"pl-kos\">}<\/span><\/pre>\n<\/div>\n<h2 dir=\"auto\">\u6700\u7ec8\u4ee3\u7801<\/h2>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"\n\/\/ isPlainObject \u51fd\u6570\u6765\u81ea\u4e8e  [JavaScript\u4e13\u9898\u4e4b\u7c7b\u578b\u5224\u65ad(\u4e0b) ](https:\/\/github.com\/mqyqingfeng\/Blog\/issues\/30)\nvar class2type = {};\nvar toString = class2type.toString;\nvar hasOwn = class2type.hasOwnProperty;\n\nfunction isPlainObject(obj) {\n    var proto, Ctor;\n    if (!obj || toString.call(obj) !== &quot;[object Object]&quot;) {\n        return false;\n    }\n    proto = Object.getPrototypeOf(obj);\n    if (!proto) {\n        return true;\n    }\n    Ctor = hasOwn.call(proto, &quot;constructor&quot;) &amp;&amp; proto.constructor;\n    return typeof Ctor === &quot;function&quot; &amp;&amp; hasOwn.toString.call(Ctor) === hasOwn.toString.call(Object);\n}\n\n\nfunction extend() {\n    \/\/ \u9ed8\u8ba4\u4e0d\u8fdb\u884c\u6df1\u62f7\u8d1d\n    var deep = false;\n    var name, options, src, copy, clone, copyIsArray;\n    var length = arguments.length;\n    \/\/ \u8bb0\u5f55\u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u4e0b\u6807\n    var i = 1;\n    \/\/ \u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u4f20\u5e03\u5c14\u503c\u7684\u60c5\u51b5\u4e0b\uff0ctarget \u9ed8\u8ba4\u662f\u7b2c\u4e00\u4e2a\u53c2\u6570\n    var target = arguments[0] || {};\n    \/\/ \u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u5e03\u5c14\u503c\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f target\n    if (typeof target == 'boolean') {\n        deep = target;\n        target = arguments[i] || {};\n        i++;\n    }\n    \/\/ \u5982\u679ctarget\u4e0d\u662f\u5bf9\u8c61\uff0c\u6211\u4eec\u662f\u65e0\u6cd5\u8fdb\u884c\u590d\u5236\u7684\uff0c\u6240\u4ee5\u8bbe\u4e3a {}\n    if (typeof target !== &quot;object&quot; &amp;&amp; !isFunction(target)) {\n        target = {};\n    }\n\n    \/\/ \u5faa\u73af\u904d\u5386\u8981\u590d\u5236\u7684\u5bf9\u8c61\u4eec\n    for (; i &lt; length; i++) {\n        \/\/ \u83b7\u53d6\u5f53\u524d\u5bf9\u8c61\n        options = arguments[i];\n        \/\/ \u8981\u6c42\u4e0d\u80fd\u4e3a\u7a7a \u907f\u514d extend(a,,b) \u8fd9\u79cd\u60c5\u51b5\n        if (options != null) {\n            for (name in options) {\n                \/\/ \u76ee\u6807\u5c5e\u6027\u503c\n                src = target[name];\n                \/\/ \u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u5c5e\u6027\u503c\n                copy = options[name];\n\n                \/\/ \u89e3\u51b3\u5faa\u73af\u5f15\u7528\n                if (target === copy) {\n                    continue;\n                }\n\n                \/\/ \u8981\u9012\u5f52\u7684\u5bf9\u8c61\u5fc5\u987b\u662f plainObject \u6216\u8005\u6570\u7ec4\n                if (deep &amp;&amp; copy &amp;&amp; (isPlainObject(copy) ||\n                        (copyIsArray = Array.isArray(copy)))) {\n                    \/\/ \u8981\u590d\u5236\u7684\u5bf9\u8c61\u5c5e\u6027\u503c\u7c7b\u578b\u9700\u8981\u4e0e\u76ee\u6807\u5c5e\u6027\u503c\u76f8\u540c\n                    if (copyIsArray) {\n                        copyIsArray = false;\n                        clone = src &amp;&amp; Array.isArray(src) ? src : [];\n\n                    } else {\n                        clone = src &amp;&amp; isPlainObject(src) ? src : {};\n                    }\n\n                    target[name] = extend(deep, clone, copy);\n\n                } else if (copy !== undefined) {\n                    target[name] = copy;\n                }\n            }\n        }\n    }\n\n    return target;\n};\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-c\">\/\/ isPlainObject \u51fd\u6570\u6765\u81ea\u4e8e  [JavaScript\u4e13\u9898\u4e4b\u7c7b\u578b\u5224\u65ad(\u4e0b) ](https:\/\/github.com\/mqyqingfeng\/Blog\/issues\/30)<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">class2type<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">toString<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">class2type<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">toString<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">hasOwn<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">class2type<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">hasOwnProperty<\/span><span class=\"pl-kos\">;<\/span>\n\n<span class=\"pl-k\">function<\/span> <span class=\"pl-en\">isPlainObject<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">obj<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">proto<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-v\">Ctor<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">!<\/span><span class=\"pl-s1\">obj<\/span> <span class=\"pl-c1\">||<\/span> <span class=\"pl-s1\">toString<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">call<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">obj<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-s\">\"[object Object]\"<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">false<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-s1\">proto<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-v\">Object<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">getPrototypeOf<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">obj<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">!<\/span><span class=\"pl-s1\">proto<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-k\">return<\/span> <span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-v\">Ctor<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">hasOwn<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">call<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">proto<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s\">\"constructor\"<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-s1\">proto<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">constructor<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">return<\/span> <span class=\"pl-k\">typeof<\/span> <span class=\"pl-v\">Ctor<\/span> <span class=\"pl-c1\">===<\/span> <span class=\"pl-s\">\"function\"<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-s1\">hasOwn<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">toString<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">call<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-v\">Ctor<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c1\">===<\/span> <span class=\"pl-s1\">hasOwn<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">toString<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">call<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-v\">Object<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-kos\">}<\/span>\n\n\n<span class=\"pl-k\">function<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c\">\/\/ \u9ed8\u8ba4\u4e0d\u8fdb\u884c\u6df1\u62f7\u8d1d<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">deep<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">false<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">clone<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copyIsArray<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">length<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-c1\">length<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-c\">\/\/ \u8bb0\u5f55\u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u4e0b\u6807<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">i<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-c\">\/\/ \u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u4f20\u5e03\u5c14\u503c\u7684\u60c5\u51b5\u4e0b\uff0ctarget \u9ed8\u8ba4\u662f\u7b2c\u4e00\u4e2a\u53c2\u6570<\/span>\n    <span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">0<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">||<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-c\">\/\/ \u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u5e03\u5c14\u503c\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f target<\/span>\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-k\">typeof<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">==<\/span> <span class=\"pl-s\">'boolean'<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-s1\">deep<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">i<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">||<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-s1\">i<\/span><span class=\"pl-c1\">++<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-c\">\/\/ \u5982\u679ctarget\u4e0d\u662f\u5bf9\u8c61\uff0c\u6211\u4eec\u662f\u65e0\u6cd5\u8fdb\u884c\u590d\u5236\u7684\uff0c\u6240\u4ee5\u8bbe\u4e3a {}<\/span>\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-k\">typeof<\/span> <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-s\">\"object\"<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-c1\">!<\/span><span class=\"pl-en\">isFunction<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n    <span class=\"pl-kos\">}<\/span>\n\n    <span class=\"pl-c\">\/\/ \u5faa\u73af\u904d\u5386\u8981\u590d\u5236\u7684\u5bf9\u8c61\u4eec<\/span>\n    <span class=\"pl-k\">for<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-kos\">;<\/span> <span class=\"pl-s1\">i<\/span> <span class=\"pl-c1\">&lt;<\/span> <span class=\"pl-s1\">length<\/span><span class=\"pl-kos\">;<\/span> <span class=\"pl-s1\">i<\/span><span class=\"pl-c1\">++<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-c\">\/\/ \u83b7\u53d6\u5f53\u524d\u5bf9\u8c61<\/span>\n        <span class=\"pl-s1\">options<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-smi\">arguments<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">i<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n        <span class=\"pl-c\">\/\/ \u8981\u6c42\u4e0d\u80fd\u4e3a\u7a7a \u907f\u514d extend(a,,b) \u8fd9\u79cd\u60c5\u51b5<\/span>\n        <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">options<\/span> <span class=\"pl-c1\">!=<\/span> <span class=\"pl-c1\">null<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n            <span class=\"pl-k\">for<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">name<\/span> <span class=\"pl-k\">in<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                <span class=\"pl-c\">\/\/ \u76ee\u6807\u5c5e\u6027\u503c<\/span>\n                <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-c\">\/\/ \u8981\u590d\u5236\u7684\u5bf9\u8c61\u7684\u5c5e\u6027\u503c<\/span>\n                <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">options<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n\n                <span class=\"pl-c\">\/\/ \u89e3\u51b3\u5faa\u73af\u5f15\u7528<\/span>\n                <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">target<\/span> <span class=\"pl-c1\">===<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                    <span class=\"pl-k\">continue<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-kos\">}<\/span>\n\n                <span class=\"pl-c\">\/\/ \u8981\u9012\u5f52\u7684\u5bf9\u8c61\u5fc5\u987b\u662f plainObject \u6216\u8005\u6570\u7ec4<\/span>\n                <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">deep<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-en\">isPlainObject<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c1\">||<\/span>\n                        <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copyIsArray<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-v\">Array<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">isArray<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                    <span class=\"pl-c\">\/\/ \u8981\u590d\u5236\u7684\u5bf9\u8c61\u5c5e\u6027\u503c\u7c7b\u578b\u9700\u8981\u4e0e\u76ee\u6807\u5c5e\u6027\u503c\u76f8\u540c<\/span>\n                    <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copyIsArray<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                        <span class=\"pl-s1\">copyIsArray<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-c1\">false<\/span><span class=\"pl-kos\">;<\/span>\n                        <span class=\"pl-s1\">clone<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-v\">Array<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">isArray<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">)<\/span> ? <span class=\"pl-s1\">src<\/span> : <span class=\"pl-kos\">[<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">;<\/span>\n\n                    <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">else<\/span> <span class=\"pl-kos\">{<\/span>\n                        <span class=\"pl-s1\">clone<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">src<\/span> <span class=\"pl-c1\">&amp;&amp;<\/span> <span class=\"pl-en\">isPlainObject<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">src<\/span><span class=\"pl-kos\">)<\/span> ? <span class=\"pl-s1\">src<\/span> : <span class=\"pl-kos\">{<\/span><span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span>\n                    <span class=\"pl-kos\">}<\/span>\n\n                    <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">deep<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">clone<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n\n                <span class=\"pl-kos\">}<\/span> <span class=\"pl-k\">else<\/span> <span class=\"pl-k\">if<\/span> <span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">copy<\/span> <span class=\"pl-c1\">!==<\/span> <span class=\"pl-c1\">undefined<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-kos\">{<\/span>\n                    <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">[<\/span><span class=\"pl-s1\">name<\/span><span class=\"pl-kos\">]<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">copy<\/span><span class=\"pl-kos\">;<\/span>\n                <span class=\"pl-kos\">}<\/span>\n            <span class=\"pl-kos\">}<\/span>\n        <span class=\"pl-kos\">}<\/span>\n    <span class=\"pl-kos\">}<\/span>\n\n    <span class=\"pl-k\">return<\/span> <span class=\"pl-s1\">target<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-kos\">}<\/span><span class=\"pl-kos\">;<\/span><\/pre>\n<\/div>\n<h2 dir=\"auto\">\u601d\u8003\u9898<\/h2>\n<p dir=\"auto\">\u5982\u679c\u89c9\u5f97\u770b\u660e\u767d\u4e86\u4e0a\u9762\u7684\u4ee3\u7801\uff0c\u60f3\u60f3\u4e0b\u9762\u4e24\u4e2a demo \u7684\u7ed3\u679c\uff1a<\/p>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var a = extend(true, [4, 5, 6, 7, 8, 9], [1, 2, 3]);\nconsole.log(a) \/\/ ???\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">a<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">4<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">5<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">6<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">7<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">8<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">9<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">1<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">2<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">3<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">)<\/span><span class=\"pl-kos\">;<\/span>\n<span class=\"pl-smi\">console<\/span><span class=\"pl-kos\">.<\/span><span class=\"pl-en\">log<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-s1\">a<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c\">\/\/ ???<\/span><\/pre>\n<\/div>\n<div class=\"highlight highlight-source-js notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"var obj1 = {\n    value: {\n        3: 1\n    }\n}\n\nvar obj2 = {\n    value: [5, 6, 7],\n\n}\n\nvar b = extend(true, obj1, obj2) \/\/ ???\nvar c = extend(true, obj2, obj1) \/\/ ???\"><\/p>\n<pre class=\"notranslate\"><span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj1<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">value<\/span>: <span class=\"pl-kos\">{<\/span>\n        <span class=\"pl-c1\">3<\/span>: <span class=\"pl-c1\">1<\/span>\n    <span class=\"pl-kos\">}<\/span>\n<span class=\"pl-kos\">}<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">obj2<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-kos\">{<\/span>\n    <span class=\"pl-c1\">value<\/span>: <span class=\"pl-kos\">[<\/span><span class=\"pl-c1\">5<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">6<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-c1\">7<\/span><span class=\"pl-kos\">]<\/span><span class=\"pl-kos\">,<\/span>\n\n<span class=\"pl-kos\">}<\/span>\n\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">b<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj1<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj2<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c\">\/\/ ???<\/span>\n<span class=\"pl-k\">var<\/span> <span class=\"pl-s1\">c<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-en\">extend<\/span><span class=\"pl-kos\">(<\/span><span class=\"pl-c1\">true<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj2<\/span><span class=\"pl-kos\">,<\/span> <span class=\"pl-s1\">obj1<\/span><span class=\"pl-kos\">)<\/span> <span class=\"pl-c\">\/\/ ???<\/span><\/pre>\n<\/div>\n<h2 dir=\"auto\">\u4e13\u9898\u7cfb\u5217<\/h2>\n<p dir=\"auto\">JavaScript\u4e13\u9898\u7cfb\u5217\u76ee\u5f55\u5730\u5740\uff1a<a href=\"https:\/\/github.com\/mqyqingfeng\/Blog\">https:\/\/github.com\/mqyqingfeng\/Blog<\/a>\u3002<\/p>\n<p dir=\"auto\">JavaScript\u4e13\u9898\u7cfb\u5217\u9884\u8ba1\u5199\u4e8c\u5341\u7bc7\u5de6\u53f3\uff0c\u4e3b\u8981\u7814\u7a76\u65e5\u5e38\u5f00\u53d1\u4e2d\u4e00\u4e9b\u529f\u80fd\u70b9\u7684\u5b9e\u73b0\uff0c\u6bd4\u5982\u9632\u6296\u3001\u8282\u6d41\u3001\u53bb\u91cd\u3001\u7c7b\u578b\u5224\u65ad\u3001\u62f7\u8d1d\u3001\u6700\u503c\u3001\u6241\u5e73\u3001\u67ef\u91cc\u3001\u9012\u5f52\u3001\u4e71\u5e8f\u3001\u6392\u5e8f\u7b49\uff0c\u7279\u70b9\u662f\u7814(chao)\u7a76(xi) underscore \u548c jQuery \u7684\u5b9e\u73b0\u65b9\u5f0f\u3002<\/p>\n<\/td>\n<p>\u6587\u7ae0\u8f6c\u8f7d\u81ea<a href='https:\/\/github.com\/mqyqingfeng\/Blog\/issues\/33'>https:\/\/github.com\/mqyqingfeng\/Blog\/issues\/33<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00 jQuery \u7684 extend \u662f jQuery \u4e2d\u5e94\u7528\u975e\u5e38\u591a\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u4eca\u5929\u6211\u4eec\u4e00\u8fb9\u770b jQuery \u7684 extend \u7684\u7279\u6027\uff0c\u4e00\u8fb9\u5b9e\u73b0\u4e00\u4e2a exten&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.lccc.top\/?p=1377\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1377","post","type-post","status-publish","format-standard","hentry","category-learn"],"_links":{"self":[{"href":"https:\/\/www.lccc.top\/index.php?rest_route=\/wp\/v2\/posts\/1377"}],"collection":[{"href":"https:\/\/www.lccc.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lccc.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lccc.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lccc.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1377"}],"version-history":[{"count":1,"href":"https:\/\/www.lccc.top\/index.php?rest_route=\/wp\/v2\/posts\/1377\/revisions"}],"predecessor-version":[{"id":1464,"href":"https:\/\/www.lccc.top\/index.php?rest_route=\/wp\/v2\/posts\/1377\/revisions\/1464"}],"wp:attachment":[{"href":"https:\/\/www.lccc.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1377"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lccc.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1377"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lccc.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}