{"id":1542,"date":"2017-03-19T15:17:25","date_gmt":"2017-03-19T07:17:25","guid":{"rendered":"http:\/\/www.qdabc.cn\/?p=1542"},"modified":"2017-03-19T15:17:25","modified_gmt":"2017-03-19T07:17:25","slug":"es6%e5%8d%81%e5%a4%a7%e5%b8%b8%e7%94%a8%e7%89%b9%e6%80%a7","status":"publish","type":"post","link":"http:\/\/www.qdabc.cn\/?p=1542","title":{"rendered":"ES6\u5341\u5927\u5e38\u7528\u7279\u6027"},"content":{"rendered":"<p>\u4ee5\u4e0b\u662fES6\u6392\u540d\u524d\u5341\u7684\u6700\u4f73\u7279\u6027\u5217\u8868\uff08\u6392\u540d\u4e0d\u5206\u5148\u540e\uff09\uff1a<\/p>\n<ul>\n<li>Default Parameters\uff08\u9ed8\u8ba4\u53c2\u6570\uff09 in ES6<\/li>\n<li>Template Literals \uff08\u6a21\u677f\u6587\u672c\uff09in ES6<\/li>\n<li>Multi-line Strings \uff08\u591a\u884c\u5b57\u7b26\u4e32\uff09in ES6<\/li>\n<li>Destructuring Assignment \uff08\u89e3\u6784\u8d4b\u503c\uff09in ES6<\/li>\n<li>Enhanced Object Literals \uff08\u589e\u5f3a\u7684\u5bf9\u8c61\u6587\u672c\uff09in ES6<\/li>\n<li>Arrow Functions \uff08\u7bad\u5934\u51fd\u6570\uff09in ES6<\/li>\n<li>Promises in ES6<\/li>\n<li>Block-Scoped Constructs Let and Const\uff08\u5757\u4f5c\u7528\u57df\u6784\u9020Let and Const\uff09<\/li>\n<li>Classes\uff08\u7c7b\uff09 in ES6<\/li>\n<li>Modules\uff08\u6a21\u5757\uff09 in ES6<\/li>\n<\/ul>\n<p>\u3010\u5907\u6ce8 \u3011\u8fd9\u91cc\u53ea\u5217\u51fa\u4e8610\u6761\u6bd4\u8f83\u5e38\u7528\u7684\u7279\u6027\u3002\u5e76\u4e0d\u662f\u6240\u6709\u7684\u6d4f\u89c8\u5668\u90fd\u652f\u6301ES6\u6a21\u5757\uff0c\u6240\u4ee5\u4f60\u9700\u8981\u4f7f\u7528\u4e00\u4e9b\u50cfjspm\u53bb\u652f\u6301ES6\u6a21\u5757\u3002<\/p>\n<h2 id=\"1default-parameters\u9ed8\u8ba4\u53c2\u6570\"><a name=\"t0\"><\/a>1.Default Parameters\uff08\u9ed8\u8ba4\u53c2\u6570\uff09<\/h2>\n<p>ES5\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs r has-numbering\">var link = <span class=\"hljs-keyword\">function<\/span> (height, color, url) {  \r\n    var height = height || <span class=\"hljs-number\">50<\/span>;  \r\n    var color = color || <span class=\"hljs-string\">'red'<\/span>;  \r\n    var url = url || <span class=\"hljs-string\">'http:\/\/azat.co'<\/span>;  \r\n    <span class=\"hljs-keyword\">...<\/span>  \r\n} <\/code><\/pre>\n<p>ES6\uff1a\u76f4\u63a5\u5199\u5728\u53c2\u6570\u91cc<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs r has-numbering\">var link = <span class=\"hljs-keyword\">function<\/span>(height = <span class=\"hljs-number\">50<\/span>, color = <span class=\"hljs-string\">'red'<\/span>, url = <span class=\"hljs-string\">'http:\/\/azat.co'<\/span>) {  \r\n  <span class=\"hljs-keyword\">...<\/span>  \r\n}<\/code><\/pre>\n<p><code>\u597d\u5904<\/code> \u8282\u7701\u4e86\u4ee3\u7801\u91cf\u3002<\/p>\n<h2 id=\"2template-literals\u6a21\u677f\u5bf9\u8c61\"><a name=\"t1\"><\/a>2.Template Literals\uff08\u6a21\u677f\u5bf9\u8c61\uff09<\/h2>\n<p>\u5728\u5b57\u7b26\u4e32\u91cc\u9762\u8f93\u51fa\u53d8\u91cf<\/p>\n<p>ES5\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs cs has-numbering\"><span class=\"hljs-keyword\">var<\/span> name = <span class=\"hljs-string\">'Your name is '<\/span> + first + <span class=\"hljs-string\">' '<\/span> + last + <span class=\"hljs-string\">'.'<\/span>;  \r\n<span class=\"hljs-keyword\">var<\/span> url = <span class=\"hljs-string\">'http:\/\/localhost:3000\/api\/messages\/'<\/span> + id;  <\/code><\/pre>\n<p>ES6\uff1a\uff0c\u4f7f\u7528\u65b0\u7684\u8bed\u6cd5 <code>$ {NAME}<\/code>\uff0c\u5e76\u628a\u5b83\u653e\u5728\u53cd\u5f15\u53f7\u91cc\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs nginx has-numbering\"><span class=\"hljs-title\">var<\/span> name = <span class=\"hljs-string\">'Your name is <span class=\"hljs-variable\">${first}<\/span> <span class=\"hljs-variable\">${last}<\/span>.'<\/span>;\r\n<span class=\"hljs-title\">var<\/span> url = <span class=\"hljs-string\">'http:\/\/loalhost:3000\/api\/messages\/<span class=\"hljs-variable\">${id}<\/span>'<\/span>;<\/code><\/pre>\n<p><code>\u597d\u5904<\/code>\uff1a \u8fd9\u91cc\u7684$ {NAME}\u76f4\u63a5\u5f53\u505a\u5b57\u7b26\u4e32\u7528\uff0c\u65e0\u9700\u5199\u52a0\u53f7<\/p>\n<h2 id=\"3multi-line-strings-\u591a\u884c\u5b57\u7b26\u4e32\"><a name=\"t2\"><\/a>3.Multi-line Strings \uff08\u591a\u884c\u5b57\u7b26\u4e32\uff09<\/h2>\n<p>ES5:<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs applescript has-numbering\">var roadPoem = 'Then took <span class=\"hljs-keyword\">the<\/span> other, <span class=\"hljs-keyword\">as<\/span> just <span class=\"hljs-keyword\">as<\/span> fair,nt'  \r\n    + 'And having perhaps <span class=\"hljs-keyword\">the<\/span> better claimnt'  \r\n    + 'Because <span class=\"hljs-keyword\">it<\/span> was grassy <span class=\"hljs-keyword\">and<\/span> wanted wear,nt'  \r\n    + 'Though <span class=\"hljs-keyword\">as<\/span> <span class=\"hljs-keyword\">for<\/span> <span class=\"hljs-keyword\">that<\/span> <span class=\"hljs-keyword\">the<\/span> passing therent'  \r\n    + 'Had worn them really <span class=\"hljs-keyword\">about<\/span> <span class=\"hljs-keyword\">the<\/span> same,nt';  \r\nvar fourAgreements = 'You have <span class=\"hljs-keyword\">the<\/span> right <span class=\"hljs-keyword\">to<\/span> be you.n  \r\n    You can only be you when you do your best.'; <\/code><\/pre>\n<p>ES6: \u53cd\u5f15\u53f7\u5c31\u53ef\u4ee5\u5566\uff01<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs livecodeserver has-numbering\">var roadPoem = `Then took <span class=\"hljs-operator\">the<\/span> other, <span class=\"hljs-keyword\">as<\/span> just <span class=\"hljs-keyword\">as<\/span> fair, \r\n    And having perhaps <span class=\"hljs-operator\">the<\/span> better claim \r\n    Because <span class=\"hljs-keyword\">it<\/span> was grassy <span class=\"hljs-operator\">and<\/span> wanted wear  \r\n    Though <span class=\"hljs-keyword\">as<\/span> <span class=\"hljs-keyword\">for<\/span> that <span class=\"hljs-operator\">the<\/span> passing theren \r\n    Had worn them really about <span class=\"hljs-operator\">the<\/span> same,`;  \r\nvar fourAgreements = `You have <span class=\"hljs-operator\">the<\/span> <span class=\"hljs-constant\">right<\/span> <span class=\"hljs-built_in\">to<\/span> be you.n  \r\n    You can only be you when you <span class=\"hljs-built_in\">do<\/span> your best.`; <\/code><\/pre>\n<p><code>\u597d\u5904<\/code>\uff1a\u76f4\u63a5\u4e00\u4e2a\u53cd\u5f15\u53f7\uff0c\u5c06\u6240\u6709\u7684\u5b57\u7b26\u4e32\u653e\u8fdb\u53bb\u5373\u53ef\uff0c\u4e2d\u4ecb\u968f\u610f\u6362\u884c\uff0c\u597d\u6e05\u723d\uff01<\/p>\n<h2 id=\"4destructuring-assignment-\u89e3\u6784\u8d4b\u503c\"><a name=\"t3\"><\/a>4.Destructuring Assignment \uff08\u89e3\u6784\u8d4b\u503c\uff09<\/h2>\n<p>\u4e0b\u8fb9\u4f8b\u5b50\u4e2d\uff0chouse \u548c mouse\u662f key\uff0c\u540c\u65f6 house \u548c mouse \u4e5f\u662f\u4e00\u4e2a\u53d8\u91cf\u3002<\/p>\n<p>ES5\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs haskell has-numbering\"><span class=\"hljs-title\">var<\/span> <span class=\"hljs-typedef\"><span class=\"hljs-keyword\">data<\/span> = $<span class=\"hljs-container\">('<span class=\"hljs-title\">body'<\/span>)<\/span>.<span class=\"hljs-keyword\">data<\/span><span class=\"hljs-container\">()<\/span>, \/\/ <span class=\"hljs-keyword\">data<\/span> has properties house and mouse  <\/span>\r\n    house = <span class=\"hljs-typedef\"><span class=\"hljs-keyword\">data<\/span>.house,  <\/span>\r\n    mouse = <span class=\"hljs-typedef\"><span class=\"hljs-keyword\">data<\/span>.mouse;  <\/span><\/code><\/pre>\n<p>\u4ee5\u53ca\u5728Node.js\u4e2d\u7528ES5\u662f\u8fd9\u6837\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs vhdl has-numbering\">var jsonMiddleware = require(<span class=\"hljs-attribute\">'body<\/span>-parser').jsonMiddleware ;  \r\nvar <span class=\"hljs-keyword\">body<\/span> = req.<span class=\"hljs-keyword\">body<\/span>, \/\/ <span class=\"hljs-keyword\">body<\/span> has username <span class=\"hljs-keyword\">and<\/span> password  \r\nusername = <span class=\"hljs-keyword\">body<\/span>.username,  \r\npassword = <span class=\"hljs-keyword\">body<\/span>.password;  <\/code><\/pre>\n<p>ES6\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs javascript has-numbering\"><span class=\"hljs-keyword\">var<\/span> {house,mouse} = $(<span class=\"hljs-string\">'body'<\/span>).data(); <span class=\"hljs-comment\">\/\/we'll get house and mouse variables <\/span>\r\n<span class=\"hljs-keyword\">var<\/span> {jsonMiddleware} = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'body-parser'<\/span>);\r\n<span class=\"hljs-keyword\">var<\/span> {username,password} = req.body;<\/code><\/pre>\n<p>\u5728\u6570\u7ec4\u4e2d\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs autohotkey has-numbering\">var [col1,col2] = $('.column'),\r\n    [line1,line2,line3, ,line5] = file.split('n')<span class=\"hljs-comment\">;<\/span><\/code><\/pre>\n<p><code>\u597d\u5904<\/code>\uff1a\u4f7f\u7528{}\u7701\u53bb\u4e86\u5199\u5bf9\u8c61\u7684\u5c5e\u6027\u7684\u6b65\u9aa4\uff0c\u5f53\u7136\u8fd9\u4e2a{}\u4e2d\u7684\u53d8\u91cf\u662f\u4e0e\u5bf9\u8c61\u7684\u5c5e\u6027\u540d\u5b57\u4fdd\u6301\u4e00\u81f4\u7684\u60c5\u51b5\u4e0b\u3002<\/p>\n<h2 id=\"5enhanced-object-literals-\u589e\u5f3a\u7684\u5bf9\u8c61\u5b57\u9762\u91cf\"><a name=\"t4\"><\/a>5.Enhanced Object Literals \uff08\u589e\u5f3a\u7684\u5bf9\u8c61\u5b57\u9762\u91cf\uff09<\/h2>\n<p>\u4f7f\u7528\u5bf9\u8c61\u6587\u672c\u53ef\u4ee5\u505a\u8bb8\u591a\u8ba9\u4eba\u610f\u60f3\u4e0d\u5230\u7684\u4e8b\u60c5\uff01\u901a\u8fc7ES6\uff0c\u6211\u4eec\u53ef\u4ee5\u628aES5\u4e2d\u7684JSON\u53d8\u5f97\u66f4\u52a0\u63a5\u8fd1\u4e8e\u4e00\u4e2a\u7c7b\u3002<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs javascript has-numbering\">\u4e0b\u9762\u662f\u4e00\u4e2a\u5178\u578bES5\u5bf9\u8c61\u6587\u672c\uff0c\u91cc\u9762\u6709\u4e00\u4e9b\u65b9\u6cd5\u548c\u5c5e\u6027\uff1a\r\n\r\n<span class=\"hljs-keyword\">var<\/span> serviceBase = {port: <span class=\"hljs-number\">3000<\/span>, url: <span class=\"hljs-string\">'azat.co'<\/span>},  \r\n    getAccounts = <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span>{<\/span><span class=\"hljs-keyword\">return<\/span> [<span class=\"hljs-number\">1<\/span>,<span class=\"hljs-number\">2<\/span>,<span class=\"hljs-number\">3<\/span>]};  \r\n<span class=\"hljs-keyword\">var<\/span> accountServiceES5 = {  \r\n  port: serviceBase.port,  \r\n  url: serviceBase.url,  \r\n  getAccounts: getAccounts,  \r\n  toString: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span> {<\/span>  \r\n      <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">JSON<\/span>.stringify(<span class=\"hljs-keyword\">this<\/span>.valueOf());  \r\n  },  \r\n  getUrl: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span> {<\/span><span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"http:\/\/\"<\/span> + <span class=\"hljs-keyword\">this<\/span>.url + <span class=\"hljs-string\">':'<\/span> + <span class=\"hljs-keyword\">this<\/span>.port},  \r\n  valueOf_1_2_3: getAccounts()  \r\n}  <\/code><\/pre>\n<pre class=\"prettyprint\"><code class=\"hljs javascript has-numbering\">\u5982\u679c\u6211\u4eec\u60f3\u8ba9\u5b83\u66f4\u6709\u610f\u601d\uff0c\u6211\u4eec\u53ef\u4ee5\u7528<span class=\"hljs-built_in\">Object<\/span>.create\u4eceserviceBase\u7ee7\u627f\u539f\u578b\u7684\u65b9\u6cd5\uff1a\r\n\r\n<span class=\"hljs-keyword\">var<\/span> accountServiceES5ObjectCreate = <span class=\"hljs-built_in\">Object<\/span>.create(serviceBase)  \r\n<span class=\"hljs-comment\">\/\/ Object.create() \u65b9\u6cd5\u521b\u5efa\u4e00\u4e2a\u62e5\u6709\u6307\u5b9a\u539f\u578b\u548c\u82e5\u5e72\u4e2a\u6307\u5b9a\u5c5e\u6027\u7684\u5bf9\u8c61\u3002<\/span>\r\n<span class=\"hljs-keyword\">var<\/span> accountServiceES5ObjectCreate = {  \r\n  getAccounts: getAccounts,  \r\n  toString: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span> {<\/span>  \r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">JSON<\/span>.stringify(<span class=\"hljs-keyword\">this<\/span>.valueOf());  \r\n  },  \r\n  getUrl: <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span> {<\/span><span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"http:\/\/\"<\/span> + <span class=\"hljs-keyword\">this<\/span>.url + <span class=\"hljs-string\">':'<\/span> + <span class=\"hljs-keyword\">this<\/span>.port},  \r\n  valueOf_1_2_3: getAccounts()  \r\n}  <\/code><\/pre>\n<p>ES6\u7684\u5bf9\u8c61\u6587\u672c\u4e2d\uff1a\u65e2\u53ef\u4ee5\u76f4\u63a5\u5206\u914dgetAccounts: getAccounts,\u4e5f\u53ef\u4ee5\u53ea\u9700\u7528\u4e00\u4e2agetAccounts<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs javascript has-numbering\"><span class=\"hljs-keyword\">var<\/span> serviceBase = {port: <span class=\"hljs-number\">3000<\/span>, url: <span class=\"hljs-string\">'azat.co'<\/span>},\r\ngetAccount = <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span>{<\/span><span class=\"hljs-keyword\">return<\/span> [<span class=\"hljs-number\">1<\/span>,<span class=\"hljs-number\">2<\/span>,<span class=\"hljs-number\">3<\/span>]};\r\n<span class=\"hljs-keyword\">var<\/span> accountService = {\r\n    __proto__: serviceBase, <span class=\"hljs-comment\">\/\/\u901a\u8fc7proto\u8bbe\u7f6e\u5c5e\u6027<\/span>\r\n    getAccount, <span class=\"hljs-comment\">\/\/ \u65e2\u53ef\u4ee5\u76f4\u63a5\u5206\u914dgetAccounts: getAccounts,\u4e5f\u53ef\u4ee5\u53ea\u9700\u7528\u4e00\u4e2agetAccounts<\/span>\r\n    toString() { <span class=\"hljs-comment\">\/\/\u8fd9\u91cc\u5c06json\u5f62\u5f0f\u6539\u4e3a\u51fd\u6570\u5f62\u5f0f <\/span>\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-built_in\">JSON<\/span>.stringify(super.valueOf()); \r\n        <span class=\"hljs-comment\">\/\/\u8c03\u7528super\u9632\u8303<\/span>\r\n    },  \r\n    getUrl() {<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"http:\/\/\"<\/span> + <span class=\"hljs-keyword\">this<\/span>.url + <span class=\"hljs-string\">':'<\/span> + <span class=\"hljs-keyword\">this<\/span>.port},  \r\n    [ <span class=\"hljs-string\">'valueOf_'<\/span> + getAccounts().join(<span class=\"hljs-string\">'_'<\/span>) ]: getAccounts()  <span class=\"hljs-comment\">\/\/\u4f7f\u7528\u52a8\u6001key\u503c(valueOf_1_2_3)\u6b64\u5904\u5c06getAccounts()\u65b9\u6cd5\u5f97\u5230\u7684\u6570\u7ec4[1,2,3]\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e321_2_3<\/span>\r\n};\r\nconsole.log(accountService);<\/code><\/pre>\n<p><code>\u597d\u5904<\/code>\uff1a\u76f8\u5f53\u4e8e\u76f4\u63a5\u5c06\u7ed3\u679c\u5199\u8fdb\u53bb\uff0c\u800c\u4e0d\u518d\u5fc5\u987b key\uff1avalue<\/p>\n<ul>\n<li>\u5c06toString: function(){}\u8fd9\u79cdjson\u5f62\u5f0f\u8f6c\u53d8\u4e3a toString() {}\u8fd9\u6837\u7684\u51fd\u6570(\u7c7b)\u7684\u5f62\u5f0f<\/li>\n<li>\u65e2\u53ef\u4ee5\u76f4\u63a5\u5206\u914dgetAccounts: getAccounts\u8fd9\u6837\u7684json\u5f62\u5f0f\uff0c\u4e5f\u53ef\u4ee5\u53ea\u9700\u7528\u4e00\u4e2agetAccounts\u8868\u8fbe\u76f8\u540c\u7684\u610f\u601d<\/li>\n<\/ul>\n<h2 id=\"6arrow-functions-in\u7bad\u5934\u51fd\u6570\"><a name=\"t5\"><\/a>\u30006.Arrow Functions in\uff08\u7bad\u5934\u51fd\u6570\uff09<\/h2>\n<p>\u8fd9\u4e9b\u4e30\u5bcc\u7684\u7bad\u5934\u662f\u4ee4\u4eba\u60ca\u8bb6\u7684\u56e0\u4e3a\u5b83\u4eec\u5c06\u4f7f\u8bb8\u591a\u64cd\u4f5c\u53d8\u6210\u73b0\u5b9e\uff0c\u6bd4\u5982\uff0c<br \/>\n\u4ee5\u524d\u6211\u4eec\u4f7f\u7528\u95ed\u5305\uff0cthis\u603b\u662f\u9884\u671f\u4e4b\u5916\u5730\u4ea7\u751f\u6539\u53d8\uff0c\u800c\u7bad\u5934\u51fd\u6570\u7684\u8ff7\u4eba\u4e4b\u5904\u5728\u4e8e\uff0c\u73b0\u5728\u4f60\u7684this\u53ef\u4ee5\u6309\u7167\u4f60\u7684\u9884\u671f\u4f7f\u7528\u4e86\uff0c\u8eab\u5904\u7bad\u5934\u51fd\u6570\u91cc\u9762\uff0cthis\u8fd8\u662f\u539f\u6765\u7684this\u3002<\/p>\n<p>ES5:<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs javascript has-numbering\"><span class=\"hljs-keyword\">var<\/span> _this = <span class=\"hljs-keyword\">this<\/span>;  \r\n$(<span class=\"hljs-string\">'.btn'<\/span>).click(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">(event)<\/span>{<\/span>  \r\n  _this.sendData();  \r\n})  <\/code><\/pre>\n<p>ES6: \u5c31\u4e0d\u9700\u8981\u7528 _this = this\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs coffeescript has-numbering\">$<span class=\"hljs-function\"><span class=\"hljs-params\">(<span class=\"hljs-string\">'.btn'<\/span>)<\/span>.<span class=\"hljs-title\">click<\/span><span class=\"hljs-params\">((event) =&gt;{  \r\n  <span class=\"hljs-keyword\">this<\/span>.sendData();  \r\n})<\/span>  <\/span><\/code><\/pre>\n<p>\u518d\u6bd4\u5982\uff1a<\/p>\n<p>ES5:<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs lasso has-numbering\"><span class=\"hljs-built_in\">var<\/span> logUpperCase <span class=\"hljs-subst\">=<\/span> function() {  \r\n  <span class=\"hljs-built_in\">var<\/span> _this <span class=\"hljs-subst\">=<\/span> this;   <span class=\"hljs-comment\">\/\/this = Object {string: \"ES6 ROCKS\"}<\/span>\r\n  console<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(<span class=\"hljs-string\">'this\u6307\u7684\u662f'<\/span>,this); <span class=\"hljs-comment\">\/\/Object {string: \"ES6 ROCKS\"}<\/span>\r\n  console<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(<span class=\"hljs-string\">'_this\u6307\u7684\u662f'<\/span>,_this);<span class=\"hljs-comment\">\/\/Object {string: \"ES6 ROCKS\"}<\/span>\r\n  this<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-built_in\">string<\/span> <span class=\"hljs-subst\">=<\/span> this<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-built_in\">string<\/span><span class=\"hljs-built_in\">.<\/span>toUpperCase();  \r\n  console<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(_this<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-built_in\">string<\/span>); <span class=\"hljs-comment\">\/\/ES6 ROCKS  <\/span>\r\n  console<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(this<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-built_in\">string<\/span>);  <span class=\"hljs-comment\">\/\/ES6 ROCKS<\/span>\r\n  <span class=\"hljs-keyword\">return<\/span> function () {  \r\n    <span class=\"hljs-keyword\">return<\/span> console<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(_this<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-built_in\">string<\/span>); <span class=\"hljs-comment\">\/\/ES6 ROCKS<\/span>\r\n    <span class=\"hljs-keyword\">return<\/span> console<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(_this<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-built_in\">string<\/span>); <span class=\"hljs-comment\">\/\/\u5982\u679creturn _this.string\uff0c\u5c06\u8fd4\u56de undefined\uff0c\u56e0\u4e3a<\/span>\r\n\r\n  }  \r\n} \r\nlogUpperCase<span class=\"hljs-built_in\">.<\/span>call({ <span class=\"hljs-built_in\">string<\/span>: <span class=\"hljs-string\">'ES6 rocks'<\/span> })();<\/code><\/pre>\n<p>ES6\uff1a\u6211\u4eec\u5e76\u4e0d\u9700\u8981\u7528_this\u6d6a\u8d39\u65f6\u95f4,\u73b0\u5728\u4f60\u7684this\u53ef\u4ee5\u6309\u7167\u4f60\u7684\u9884\u671f\u4f7f\u7528\u4e86\uff0c\u8eab\u5904\u7bad\u5934\u51fd\u6570\u91cc\u9762\uff0cthis\u8fd8\u662f\u539f\u6765\u7684this<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs coffeescript has-numbering\"><span class=\"hljs-reserved\">var<\/span> logUpperCase = <span class=\"hljs-reserved\">function<\/span>() {  \r\n  <span class=\"hljs-keyword\">this<\/span>.string = <span class=\"hljs-keyword\">this<\/span>.string.toUpperCase();<span class=\"hljs-regexp\">\/\/<\/span><span class=\"hljs-keyword\">this<\/span>\u8fd8\u662f\u539f\u6765\u7684<span class=\"hljs-keyword\">this<\/span>  \r\n  <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-function\"><span class=\"hljs-params\">()<\/span> =&gt;<\/span> <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-keyword\">this<\/span>.string);  \r\n}  \r\nlogUpperCase.call({ <span class=\"hljs-attribute\">string<\/span>: <span class=\"hljs-string\">'ES6 rocks'<\/span> })();  <\/code><\/pre>\n<p><code>\u6ce8\u610f<\/code> \u53ea\u8981\u4f60\u613f\u610f\uff0c\u5728ES6\u4e2d=&gt;\u53ef\u4ee5\u6df7\u5408\u548c\u5339\u914d\u8001\u7684\u51fd\u6570\u4e00\u8d77\u4f7f\u7528\u3002\u5f53\u5728\u4e00\u884c\u4ee3\u7801\u4e2d\u7528\u4e86\u7bad\u5934\u51fd\u6570\uff0c\u5b83\u5c31\u53d8\u6210\u4e86\u4e00\u4e2a\u8868\u8fbe\u5f0f\u3002\u5b83\u5c06\u6697\u5730\u91cc\u8fd4\u56de\u5355\u4e2a\u8bed\u53e5\u7684\u7ed3\u679c\u3002\u5982\u679c\u4f60\u8d85\u8fc7\u4e86\u4e00\u884c\uff0c\u5c06\u9700\u8981\u660e\u786e\u4f7f\u7528return\u3002<\/p>\n<p>ES5\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs javascript has-numbering\"><span class=\"hljs-keyword\">var<\/span> ids = [<span class=\"hljs-string\">'5632953c4e345e145fdf2df8'<\/span>,<span class=\"hljs-string\">'563295464e345e145fdf2df9'<\/span>];  \r\n<span class=\"hljs-keyword\">var<\/span> messages = ids.map(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-params\">(value)<\/span> {<\/span>  \r\n  <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">\"ID is \"<\/span> + value; <span class=\"hljs-comment\">\/\/ explicit return  <\/span>\r\n}); <\/code><\/pre>\n<p>ES6\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs cs has-numbering\"><span class=\"hljs-keyword\">var<\/span> ids = [<span class=\"hljs-string\">'5632953c4e345e145fdf2df8'<\/span>,<span class=\"hljs-string\">'563295464e345e145fdf2df9'<\/span>];\r\n<span class=\"hljs-keyword\">var<\/span> messages = ids.map((<span class=\"hljs-keyword\">value<\/span>)  =&gt; `ID <span class=\"hljs-keyword\">is<\/span> ${<span class=\"hljs-keyword\">value<\/span>}`); <span class=\"hljs-comment\">\/\/implicit return <\/span><\/code><\/pre>\n<p><code>\u597d\u5904<\/code>\uff1a<br \/>\n* \u5e76\u4e0d\u9700\u8981\u7528_this\u6d6a\u8d39\u65f6\u95f4\uff0c\u73b0\u5728\u4f60\u7684this\u53ef\u4ee5\u6309\u7167\u4f60\u7684\u9884\u671f\u4f7f\u7528\u4e86\uff0c\u8eab\u5904\u7bad\u5934\u51fd\u6570\u91cc\u9762\uff0cthis\u8fd8\u662f\u539f\u6765\u7684this\u3002<br \/>\n* =&gt; \u53ef\u4ee5\u4ee3\u66fffunction\u5173\u952e\u5b57\uff0c\u5f53\u5728\u4e00\u884c\u7528\u4e86\u7bad\u5934\u51fd\u6570\uff0c\u53ef\u4ee5\u7701\u53bb{}\uff0c\u8fd8\u53ef\u4ee5\u7701\u53bbreturn\uff0c\u5b83\u4f1a\u6697\u5730\u91cc\u8fd4\u56de\u7684\u3002<\/p>\n<h2 id=\"7promises\"><a name=\"t6\"><\/a>7.Promises<\/h2>\n<p>ES5\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs matlab has-numbering\">setTimeout(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span>{  <\/span>\r\n  <span class=\"hljs-transposed_variable\">console.<\/span><span class=\"hljs-built_in\">log<\/span>(<span class=\"hljs-string\">'Yay!'<\/span>);  \r\n}, <span class=\"hljs-number\">1000<\/span>);  <\/code><\/pre>\n<p>ES6: \u6211\u4eec\u53ef\u4ee5\u7528promise\u91cd\u5199<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs coffeescript has-numbering\"><span class=\"hljs-reserved\">var<\/span> wait1000 = <span class=\"hljs-keyword\">new<\/span> Promise<span class=\"hljs-function\"><span class=\"hljs-params\">((resolve,reject)=&gt; {\r\n   setTimeout(resolve,<span class=\"hljs-number\">1000<\/span>);\r\n})<\/span>.<span class=\"hljs-title\">then<\/span><span class=\"hljs-params\">(()=&gt; {\r\n    <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Yay!'<\/span>); \r\n})<\/span>;<\/span><\/code><\/pre>\n<p>\u5982\u679c\u6211\u4eec\u6709\u66f4\u591a\u7684\u5d4c\u5957\u903b\u8f91\u5728setTimeout()\u56de\u8c03\u51fd\u6570\u4e2d\uff0c\u597d\u5904\u4f1a\u660e\u663e\u4e00\u70b9\uff1a<br \/>\nES5\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs matlab has-numbering\">setTimeout(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span>{  <\/span>\r\n  <span class=\"hljs-transposed_variable\">console.<\/span><span class=\"hljs-built_in\">log<\/span>(<span class=\"hljs-string\">'Yay!'<\/span>);  \r\n  setTimeout(<span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span><span class=\"hljs-params\">()<\/span>{  <\/span>\r\n    <span class=\"hljs-transposed_variable\">console.<\/span><span class=\"hljs-built_in\">log<\/span>(<span class=\"hljs-string\">'Wheeyee!'<\/span>);  \r\n  }, <span class=\"hljs-number\">1000<\/span>)  \r\n}, <span class=\"hljs-number\">1000<\/span>);  <\/code><\/pre>\n<p>ES6: \u6211\u4eec\u53ef\u4ee5\u7528promise\u91cd\u5199<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs coffeescript has-numbering\"><span class=\"hljs-reserved\">var<\/span> <span class=\"hljs-function\"><span class=\"hljs-title\">wait1000<\/span> = <span class=\"hljs-params\">()<\/span>=&gt;<\/span> <span class=\"hljs-keyword\">new<\/span> Promise<span class=\"hljs-function\"><span class=\"hljs-params\">((resolve,reject)=&gt;{ setTimeout(resolve,<span class=\"hljs-number\">1000<\/span>);})<\/span>;\r\n<span class=\"hljs-title\">wait1000<\/span><span class=\"hljs-params\">()<\/span>\r\n    .<span class=\"hljs-title\">then<\/span><span class=\"hljs-params\">(<span class=\"hljs-reserved\">function<\/span>(){\r\n        <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Yay!'<\/span>);  \r\n        <span class=\"hljs-keyword\">return<\/span> wait1000()\r\n    })<\/span>\r\n    .<span class=\"hljs-title\">then<\/span><span class=\"hljs-params\">(<span class=\"hljs-reserved\">function<\/span>(){\r\n         <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Wheeyee!'<\/span>);  \r\n    })<\/span>;<\/span><\/code><\/pre>\n<h2 id=\"8-block-scoped\u5757\u4f5c\u7528\u57df\u548c\u6784\u9020let\u548cconst\"><a name=\"t7\"><\/a>8 Block-Scoped(\u5757\u4f5c\u7528\u57df\u548c\u6784\u9020let\u548cconst\uff09<\/h2>\n<p>let\u662f\u4e00\u79cd\u65b0\u7684\u53d8\u91cf\u58f0\u660e\u65b9\u5f0f\uff0c\u5b83\u5141\u8bb8\u4f60\u628a\u53d8\u91cf\u4f5c\u7528\u57df\u63a7\u5236\u5728\u5757\u7ea7\u91cc\u9762\u3002\u6211\u4eec\u7528\u5927\u62ec\u53f7\u5b9a\u4e49\u4ee3\u7801\u5757\uff0c\u5728ES5\u4e2d\uff0c\u5757\u7ea7\u4f5c\u7528\u57df\u8d77\u4e0d\u4e86\u4efb\u4f55\u4f5c\u7528\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs javascript has-numbering\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">calculateTotalAmount<\/span> <span class=\"hljs-params\">(vip)<\/span> {<\/span>  \r\n  <span class=\"hljs-keyword\">var<\/span> amount = <span class=\"hljs-number\">0<\/span>;  \r\n  <span class=\"hljs-keyword\">if<\/span> (vip) {  \r\n    <span class=\"hljs-keyword\">var<\/span> amount = <span class=\"hljs-number\">1<\/span>;  \r\n  }  \r\n  { <span class=\"hljs-comment\">\/\/ more crazy blocks!  <\/span>\r\n    <span class=\"hljs-keyword\">var<\/span> amount = <span class=\"hljs-number\">100<\/span>;  \r\n    {  \r\n      <span class=\"hljs-keyword\">var<\/span> amount = <span class=\"hljs-number\">1000<\/span>;  \r\n    }  \r\n  }    \r\n  <span class=\"hljs-keyword\">return<\/span> amount;  \r\n}  \r\nconsole.log(calculateTotalAmount(<span class=\"hljs-literal\">true<\/span>));  <span class=\"hljs-comment\">\/\/ 1000<\/span><\/code><\/pre>\n<p>ES6: \u7528let\u9650\u5236\u5757\u7ea7\u4f5c\u7528\u57df<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs coffeescript has-numbering\"><span class=\"hljs-reserved\">function<\/span> calculateTotalAmount(vip){\r\n    <span class=\"hljs-reserved\">var<\/span> amouont  = <span class=\"hljs-number\">0<\/span>; <span class=\"hljs-regexp\">\/\/<\/span> probably should also be <span class=\"hljs-reserved\">let<\/span>, but you can mix <span class=\"hljs-reserved\">var<\/span> <span class=\"hljs-keyword\">and<\/span> <span class=\"hljs-reserved\">let<\/span>\r\n    <span class=\"hljs-keyword\">if<\/span> (vip) {  \r\n        <span class=\"hljs-reserved\">let<\/span> amount = <span class=\"hljs-number\">1<\/span>; <span class=\"hljs-regexp\">\/\/<\/span> first amount <span class=\"hljs-keyword\">is<\/span> still <span class=\"hljs-number\">0<\/span>  \r\n    }   \r\n    { <span class=\"hljs-regexp\">\/\/<\/span> more crazy blocks!  \r\n    <span class=\"hljs-reserved\">let<\/span> amount = <span class=\"hljs-number\">100<\/span>; <span class=\"hljs-regexp\">\/\/<\/span> first amount <span class=\"hljs-keyword\">is<\/span> still <span class=\"hljs-number\">0<\/span>  \r\n    {  \r\n      <span class=\"hljs-reserved\">let<\/span> amount = <span class=\"hljs-number\">1000<\/span>; <span class=\"hljs-regexp\">\/\/<\/span> first amount <span class=\"hljs-keyword\">is<\/span> still <span class=\"hljs-number\">0<\/span>  \r\n    }  \r\n  }    \r\n  <span class=\"hljs-keyword\">return<\/span> amount;  \r\n} \r\n<span class=\"hljs-built_in\">console<\/span>.log(calculateTotalAmount(<span class=\"hljs-literal\">true<\/span>));  <span class=\"hljs-regexp\">\/\/<\/span><span class=\"hljs-number\">0<\/span> \u56e0\u4e3a\u5757\u4f5c\u7528\u57df\u4e2d\u6709\u4e86<span class=\"hljs-reserved\">let<\/span>\u3002<\/code><\/pre>\n<p>\u8c08\u5230const\uff0c\u5c31\u66f4\u52a0\u5bb9\u6613\u4e86\uff1b\u5b83\u5c31\u662f\u4e00\u4e2a\u4e0d\u53d8\u91cf\uff0c\u4e5f\u662f\u5757\u7ea7\u4f5c\u7528\u57df\u5c31\u50cflet\u4e00\u6837\u3002<\/p>\n<p><code>\u597d\u5904<\/code> \uff1a \u6211\u4eec\u7528let\u9650\u5236\u5757\u7ea7\u4f5c\u7528\u57df\u3002\u800cvar\u662f\u9650\u5236\u51fd\u6570\u4f5c\u7528\u57df\u3002<\/p>\n<h2 id=\"9-classes-\u7c7b\"><a name=\"t8\"><\/a>9. Classes \uff08\u7c7b\uff09<\/h2>\n<p>ES6\u6ca1\u6709\u7528\u51fd\u6570,\u800c\u662f\u4f7f\u7528\u539f\u578b\u5b9e\u73b0\u7c7b\u3002\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u7c7bbaseModel \uff0c\u5e76\u4e14\u5728\u8fd9\u4e2a\u7c7b\u91cc\u5b9a\u4e49\u4e86\u4e00\u4e2aconstructor \u548c\u4e00\u4e2a getName()\u65b9\u6cd5\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs coffeescript has-numbering\"><span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">baseModel<\/span> {  <\/span>\r\n    constructor(options, data) {<span class=\"hljs-regexp\">\/\/<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">constructor<\/span>\uff0c \u6ce8\u610f\u6211\u4eec\u5bf9<span class=\"hljs-title\">options<\/span> \u548c<span class=\"hljs-title\">data<\/span>\u4f7f\u7528\u4e86\u9ed8\u8ba4\u53c2\u6570\u503c\u3002<\/span>\r\n        <span class=\"hljs-keyword\">this<\/span>.name = <span class=\"hljs-string\">'Base'<\/span>;  \r\n        <span class=\"hljs-keyword\">this<\/span>.url = <span class=\"hljs-string\">'http:\/\/azat.co\/api'<\/span>;  \r\n        <span class=\"hljs-keyword\">this<\/span>.data = data;  \r\n        <span class=\"hljs-keyword\">this<\/span>.options = options;  \r\n   }  \r\n    getName() { <span class=\"hljs-regexp\">\/\/<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">method<\/span>  <\/span>\r\n        <span class=\"hljs-built_in\">console<\/span>.log(`<span class=\"javascript\">Class name: ${<span class=\"hljs-keyword\">this<\/span>.name}<\/span>`);  \r\n    } \r\n    getUrl() { <span class=\"hljs-regexp\">\/\/<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">method<\/span>  <\/span>\r\n         <span class=\"hljs-built_in\">console<\/span>.log(`<span class=\"javascript\">Url: ${<span class=\"hljs-keyword\">this<\/span>.url}<\/span>`);  \r\n    }\r\n}  <\/code><\/pre>\n<p>AccountModel \u4ece\u7c7bbaseModel \u4e2d\u7ee7\u627f\u800c\u6765:<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs axapta has-numbering\"><span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">AccountModel<\/span> <span class=\"hljs-inheritance\"><span class=\"hljs-keyword\">extends<\/span><\/span> <span class=\"hljs-title\">baseModel<\/span> {<\/span>  \r\n    constructor(options, data) { \r\n    <span class=\"hljs-keyword\">super<\/span>({<span class=\"hljs-keyword\">private<\/span>: <span class=\"hljs-keyword\">true<\/span>}, [<span class=\"hljs-string\">'32'<\/span>, <span class=\"hljs-string\">'5242'<\/span>]); \r\n    <span class=\"hljs-keyword\">this<\/span>.url +=<span class=\"hljs-string\">'\/accounts\/'<\/span>;  \r\n    }\r\n    get accountsData() {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">this<\/span>.data;  \r\n    }  \r\n} \r\n<span class=\"hljs-comment\">\/\/ \u8c03\u7528<\/span>\r\nlet accounts = <span class=\"hljs-keyword\">new<\/span> AccountModel(<span class=\"hljs-number\">5<\/span>);  \r\naccounts.getName();  <span class=\"hljs-comment\">\/\/ Class name:  Base<\/span>\r\nconsole.log(<span class=\"hljs-string\">'Data is %s'<\/span>, accounts.accountsData); \r\n<span class=\"hljs-comment\">\/\/ Data is 32,5242 <\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/\u5b50\u7c7b\u5fc5\u987b\u5728constructor\u65b9\u6cd5\u4e2d\u8c03\u7528super\u65b9\u6cd5\uff0c\u5426\u5219\u65b0\u5efa\u5b9e\u4f8b\u65f6\u4f1a\u62a5\u9519\u3002<\/span>\r\n<span class=\"hljs-comment\">\/\/\u8fd9\u662f\u56e0\u4e3a\u5b50\u7c7b\u6ca1\u6709\u81ea\u5df1\u7684this\u5bf9\u8c61\uff0c\u800c\u662f\u7ee7\u627f\u7236\u7c7b\u7684this\u5bf9\u8c61\uff0c\u7136\u540e\u5bf9\u5176\u8fdb\u884c\u52a0\u5de5\u3002<\/span>\r\n<span class=\"hljs-comment\">\/\/\u5982\u679c\u4e0d\u8c03\u7528super\u65b9\u6cd5\uff0c\u5b50\u7c7b\u5c31\u5f97\u4e0d\u5230this\u5bf9\u8c61\u3002<\/span><\/code><\/pre>\n<p>\u3010\u6ce8\u610f\u3011\uff1a<br \/>\n* \u6b64\u5904\u7684\u7ee7\u627f\u4e2d\uff0c\u5b50\u7c7b\u5fc5\u987b\u5728constructor\u65b9\u6cd5\u4e2d\u8c03\u7528super\u65b9\u6cd5\uff0c\u5426\u5219\u65b0\u5efa\u5b9e\u4f8b\u65f6\u4f1a\u62a5\u9519\u3002<br \/>\n* \u6b64\u5904\u7684super\u65b9\u6cd5\u7ee7\u627f\u4e86\u7236\u7c7b\u7684\u6240\u6709\u65b9\u6cd5\uff0c\u5305\u62ec\u4e0d\u5728\u7236\u7c7b\u7684constructor\u4e2d\u7684\u5176\u4ed6\u65b9\u6cd5\uff0c\u5f53\u7136\u53ef\u4ee5\u6539\u5199\u7236\u7c7b\u65b9\u6cd5\uff0c\u6bd4\u5982\u4e0a\u8ff0\u4f8b\u5b50\uff0c\u7ee7\u627f\u4e86getName(),getUrl()\u65b9\u6cd5\uff0c\u4ee5\u53caconstructor\uff08\uff09\u4e2d\u7684this.name\u7b49\u5c5e\u6027\uff0c\u540c\u65f6\u6539\u5199\u4e86this.url\uff0c\u589e\u52a0\u4e86accountsData\uff0c\u4e14\u65b0\u589e\u7684\u65b9\u6cd5\u524d\u8fb9\u8981\u52a0\u4e0aget\u3002<br \/>\n* \u5b50\u7c7b\u8c03\u7528super\u65b9\u6cd5\u53ef\u4ee5\u4f20\u5165\u53c2\u6570\uff0c\u5bf9\u5e94constructor()\u51fd\u6570\u7684\u5f62\u53c2\u3002<\/p>\n<h2 id=\"10-modules-\u6a21\u5757\"><a name=\"t9\"><\/a>10. Modules \uff08\u6a21\u5757\uff09<\/h2>\n<p>ES5\u5bfc\u51fa\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs r has-numbering\">module.exports = { port: <span class=\"hljs-number\">3000<\/span>, getAccounts: <span class=\"hljs-keyword\">function<\/span>() { <span class=\"hljs-keyword\">...<\/span> }}<\/code><\/pre>\n<p>ES6\u5bfc\u51fa\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs r has-numbering\">export var port = <span class=\"hljs-number\">3000<\/span>;\r\nexport <span class=\"hljs-keyword\">function<\/span> getAccounts(url) { <span class=\"hljs-keyword\">...<\/span>}<\/code><\/pre>\n<p>ES5\u5bfc\u5165\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs lasso has-numbering\"><span class=\"hljs-built_in\">var<\/span> service <span class=\"hljs-subst\">=<\/span> <span class=\"hljs-keyword\">require<\/span>(<span class=\"hljs-string\">'module.js'<\/span>);\r\nconsole<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(service<span class=\"hljs-built_in\">.<\/span>port); <span class=\"hljs-comment\">\/\/ 3000<\/span><\/code><\/pre>\n<p>ES6\u5bfc\u5165\uff1a<\/p>\n<p>\u6211\u4eec\u9700\u7528import {name} from \u2018my-module\u2019\u8bed\u6cd5<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs lasso has-numbering\"><span class=\"hljs-keyword\">import<\/span> {port, getAccounts} from <span class=\"hljs-string\">'module'<\/span>;\r\nconsole<span class=\"hljs-built_in\">.<\/span><span class=\"hljs-keyword\">log<\/span>(port); <span class=\"hljs-comment\">\/\/ 300<\/span><\/code><\/pre>\n<p>\u6216\u8005ES6\u6574\u4f53\u5bfc\u5165\uff1a<\/p>\n<pre class=\"prettyprint\"><code class=\"hljs cs has-numbering\">import * <span class=\"hljs-keyword\">as<\/span> service <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">'module'<\/span>;\r\nconsole.log(service.port); <span class=\"hljs-comment\">\/\/ 3000<\/span><\/code><\/pre>\n<p>\u8fd9\u91cc\u8fd8\u6709\u8bb8\u591aES6\u7684\u5176\u5b83\u7279\u6027\u4f60\u53ef\u80fd\u4f1a\u4f7f\u7528\u5230\uff0c\u6392\u540d\u4e0d\u5206\u5148\u540e\uff1a<\/p>\n<ul>\n<li>\u5168\u65b0\u7684Math, Number, String, Array \u548c Object \u65b9\u6cd5<\/li>\n<li>\u4e8c\u8fdb\u5236\u548c\u516b\u8fdb\u5236\u6570\u636e\u7c7b\u578b<\/li>\n<li>\u9ed8\u8ba4\u53c2\u6570\u4e0d\u5b9a\u53c2\u6570\u6269\u5c55\u8fd0\u7b97\u7b26<\/li>\n<li>Symbols\u7b26\u53f7<\/li>\n<li>tail\u8c03\u7528<\/li>\n<li>Generators (\u751f\u6210\u5668)<\/li>\n<li>New data structures like Map and Set(\u65b0\u7684\u6570\u636e\u6784\u9020\u5bf9\u50cfMAP\u548cset)<\/li>\n<\/ul>\n<p class=\"post-copyright\">\u6b22\u8fce\u5206\u4eab\u672c\u6587\uff0c\u8f6c\u8f7d\u8bf7\u4fdd\u7559\u51fa\u5904\uff1a<a href=\"http:\/\/www.qdabc.cn\">\u524d\u7aefABC<\/a> &raquo; <a href=\"http:\/\/www.qdabc.cn\/?p=1542\">ES6\u5341\u5927\u5e38\u7528\u7279\u6027<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u4e0b\u662fES6\u6392\u540d\u524d\u5341\u7684\u6700\u4f73\u7279\u6027\u5217\u8868\uff08\u6392\u540d\u4e0d\u5206\u5148\u540e\uff09\uff1a Default Parameters\uff08\u9ed8\u8ba4\u53c2\u6570\uff09 in ES6 Template Literals \uff08\u6a21\u677f\u6587\u672c\uff09in ES6 Multi-line [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[143],"_links":{"self":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts\/1542"}],"collection":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1542"}],"version-history":[{"count":1,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts\/1542\/revisions"}],"predecessor-version":[{"id":1543,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=\/wp\/v2\/posts\/1542\/revisions\/1543"}],"wp:attachment":[{"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1542"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.qdabc.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}