Title: JavaScript设计模式 - learning logs · Issue #7 · K0II/JavaScript · GitHub
Open Graph Title: JavaScript设计模式 - learning logs · Issue #7 · K0II/JavaScript
X Title: JavaScript设计模式 - learning logs · Issue #7 · K0II/JavaScript
Description: 类 // 一个类 var checkObject = function() { this.checkName = function() {}; this.checkEmail = function() {}; this.checkPassword = function() {}; }; var a = new checkObject(); a.checkName(); 所有通过this定义的方法放在了函数内部,所以每一次通过new关键字创建新对象时候,新创建的对象都会对...
Open Graph Description: 类 // 一个类 var checkObject = function() { this.checkName = function() {}; this.checkEmail = function() {}; this.checkPassword = function() {}; }; var a = new checkObject(); a.checkName(); 所有通过this定义的...
X Description: 类 // 一个类 var checkObject = function() { this.checkName = function() {}; this.checkEmail = function() {}; this.checkPassword = function() {}; }; var a = new checkObject(); a.checkName(); 所有通过this定义的...
Opengraph URL: https://github.com/K0II/JavaScript/issues/7
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"JavaScript设计模式 - learning logs","articleBody":"### 类\n\n``` javascript\n// 一个类\nvar checkObject = function() {\n this.checkName = function() {};\n this.checkEmail = function() {};\n this.checkPassword = function() {};\n};\n\nvar a = new checkObject();\na.checkName();\n```\n\n所有通过`this`定义的方法放在了函数内部,所以每一次通过`new`关键字创建新对象时候,新创建的对象都会对类的`this`上的属性进行复制。所以这些新创建的对象都会有自己的一套方法,造成的消耗很奢侈。\n\n``` javascript\nvar checkObject = function() {};\n\ncheckObject.prototype = {\n checkName: function() {\n // 验证姓名\n return this;\n },\n checkEmail: function() {\n // 验证邮箱\n return this;\n },\n checkPassword: function() {\n // 验证密码\n return this;\n }\n}\n\nvar a = new checkObject();\na.checkName().checkEmail().checkPassword();\n```\n\nthis指向当前对象(a)\n\n\u003e 有一些方法没有返回值,例如,一些设置或修改对象的某个状态却不返回任何值的方法。\n\u003e 让这些方法返回`this`而不是`undefined`(没有`return`默认返回`undefined`),就可以启动级联(Cascade)。\n\u003e 让每一方法都返回该对象,所以每次调用的结果可以被下一次调用所用。\n\u003e 一个接口没必要一次做太多事\n\n```\nvar Book = function (bookId, bookName, price) {\n var num = 1; // 私有属性\n function checkId () {}; // 私有方法\n\n // 对象共有属性\n this.bookId = bookId;\n\n // 对象共有方法\n this.copy = function () {};\n // 特权方法\n this.getName = function() {};\n this.getPrice = function() {};\n this.setName = function() {};\n this.setPrice = function() {};\n\n // 构造器\n this.setName(bookName);\n this.setPrice(price);\n};\n\nvar aBook = new Book(01,'YOU DON`T KNOW JS',49);\n```\n","author":{"url":"https://github.com/K0II","@type":"Person","name":"K0II"},"datePublished":"2016-06-10T11:55:15.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/7/JavaScript/issues/7"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:159a649e-d8ed-8bf1-f297-384a9fb94aac |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E3B0:162B2:747F331:A3BDC9C:6A5025EA |
| html-safe-nonce | a3781f5c0e058f6ef6b95f06c3236b6db117e6cfcdb02fc07a1e11c52bc75ad8 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFM0IwOjE2MkIyOjc0N0YzMzE6QTNCREM5Qzo2QTUwMjVFQSIsInZpc2l0b3JfaWQiOiI1MTIxMTkxNTg5OTA3MTAyNTAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | cb3331c13234168376117f4dd8742c364a711bcd324e9fa0f16c8f0e030c59f7 |
| hovercard-subject-tag | issue:159619160 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/K0II/JavaScript/7/issue_layout |
| twitter:image | https://opengraph.githubassets.com/447a15a005a500eff0f5430d9ab923d09705d41a6a96680ab5103293629483a5/K0II/JavaScript/issues/7 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/447a15a005a500eff0f5430d9ab923d09705d41a6a96680ab5103293629483a5/K0II/JavaScript/issues/7 |
| og:image:alt | 类 // 一个类 var checkObject = function() { this.checkName = function() {}; this.checkEmail = function() {}; this.checkPassword = function() {}; }; var a = new checkObject(); a.checkName(); 所有通过this定义的... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | K0II |
| hostname | github.com |
| expected-hostname | github.com |
| None | a08040246389072795e3b4e7b33c6d9a0c564eee02e829a809326d67c418b069 |
| turbo-cache-control | no-preview |
| go-import | github.com/K0II/JavaScript git https://github.com/K0II/JavaScript.git |
| octolytics-dimension-user_id | 19141974 |
| octolytics-dimension-user_login | K0II |
| octolytics-dimension-repository_id | 57857936 |
| octolytics-dimension-repository_nwo | K0II/JavaScript |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 57857936 |
| octolytics-dimension-repository_network_root_nwo | K0II/JavaScript |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | d1b91b18e7330fc458dfd824c61eaed7daa830d6 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width