3.05 - private methods with closures.js

来自「JS设计模式源代码」· JavaScript 代码 · 共 46 行

JS
46
字号
var Book = function(newIsbn, newTitle, newAuthor) { // implements Publication  // Private attributes.  var isbn, title, author;  // Private method.  function checkIsbn(isbn) {    ...   }    // Privileged methods.  this.getIsbn = function() {    return isbn;  };  this.setIsbn = function(newIsbn) {    if(!checkIsbn(newIsbn)) throw new Error('Book: Invalid ISBN.');    isbn = newIsbn;  };  this.getTitle = function() {    return title;  };  this.setTitle = function(newTitle) {    title = newTitle || 'No title specified';  };  this.getAuthor = function() {    return author;  };  this.setAuthor = function(newAuthor) {    author = newAuthor || 'No author specified';  };  // Constructor code.  this.setIsbn(newIsbn);  this.setTitle(newTitle);  this.setAuthor(newAuthor);};// Public, non-privileged methods.Book.prototype = {  display: function() {    ...  }};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?