[整理]JavaScriptオブジェクトを作成する場合は、内部データが外部からアクセスできないことを保証します.

1727 ワード

  /**
   * JavaScript      :
   *          ,               。  :Book
   *          ,               。 。getName、getBookName
   *                 “Arr”   。 :functionArr     
   */
  
  /**   JS     
   *    :       prototype   
   *    :      prototype             (   、    、     、    )。
   *                             
   *    :         
   * 
   * 
   * 
   */
  
  //     Book                JavaScript        
  var Book = function( isbn, author, price ) {
    
    var isbn, author, price;
    
    function checkIsbn(isbn) {
      if ( isbn === undefined || typeof isbn !== "string") {
        return false;
      }
      
      if ( isbn.length === 0 ) {
        return false;
      }
      
      return true;
    }
    /**
     *                   Book   ,           ,         ,            。
     *                     Book.prototype   . display  ;
     */
    this.setIsbn = function ( isbn ) {
      if ( !checkIsbn(isbn) ) throw new Error("Boook constructor requires an isbn");
       isbn = isbn;
    }
    this.getIsbn = function () {
      return isbn;
    }
    this.setAuthor = function ( author ) {
      author = author || "";
    }
    this.getAuthor = function () {
      return author;
    }
    this.setPrice = function( price ) {
      price = price || "";
    }
    this.getPrice = function () {
      return price;
    }
    
    this.setIsbn( isbn );  
    this.setAuthor( author );  
    this.setPrice( price ); 
  }
  /**
   *    Book.prototype               ,  :                        Book.prototype .
   * 
   */
  Book.prototype = {
    
    // 
    display : function() {
      
    }    
  }
  var book = new Book("");