3.06 - static members.js

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

JS
63
字号
var Book = (function() {    // Private static attributes.  var numOfBooks = 0;  // Private static method.  function checkIsbn(isbn) {    ...   }      // Return the constructor.  return function(newIsbn, newTitle, newAuthor) { // implements Publication    // Private attributes.    var isbn, title, author;    // 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.    numOfBooks++; // Keep track of how many Books have been instantiated                  // with the private static attribute.    if(numOfBooks > 50) throw new Error('Book: Only 50 instances of Book can be '        + 'created.');    this.setIsbn(newIsbn);    this.setTitle(newTitle);    this.setAuthor(newAuthor);  }})();// Public static method.Book.convertToTitleCase = function(inputString) {  ...};// Public, non-privileged methods.Book.prototype = {  display: function() {    ...  }};

⌨️ 快捷键说明

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