Home >Web Front-end >JS Tutorial >Detailed explanation of js initialization verification example

Detailed explanation of js initialization verification example

高洛峰
高洛峰Original
2016-12-05 10:20:251035browse

The example in this article describes the js initialization verification method. Share it with everyone for your reference, the details are as follows:

<script type="text/javascript">
var Book = function(isbn, title, author) {
 if(!this.checkIsbn(isbn)){
   throw new Error(&#39;Book: Invalid ISBN.&#39;);
 } 
 this.isbn = isbn;
 this.title = title || &#39;No title specified&#39;;
 this.author = author || &#39;No author specified&#39;;
}
Book.prototype = {
 checkIsbn: function(isbn) {
  if(isbn == undefined || typeof isbn != &#39;string&#39;) {
   return false;
  }
  return true; // All tests passed.
 },
 display: function() {
  alert("isbn:"+this.isbn+" title:"+this.title+" author:"+this.author);
 }
};
var theHobbit = new Book(&#39;0-395-07122-4&#39;, &#39;The Hobbit&#39;, &#39;J. R. R. Tolkein&#39;);
theHobbit.display(); // Outputs the data by creating and populating an HTML element.
</script>

Verify isbn. Whether it is defined, whether it is a string, etc. Judge the title and set the default.

Another implementation method

<script type="text/javascript">
/* 出版 interface. */
/* var Publication = new Interface(&#39;Publication&#39;, [&#39;getIsbn&#39;, &#39;setIsbn&#39;, &#39;getTitle&#39;,
 &#39;setTitle&#39;, &#39;getAuthor&#39;, &#39;setAuthor&#39;, &#39;display&#39;]); */
var Book = function(isbn, title, author) { // implements Publication
 this.setIsbn(isbn);
 this.setTitle(title);
 this.setAuthor(author);
}
Book.prototype = {
 checkIsbn: function(isbn) {
  if(isbn == undefined || typeof isbn != &#39;string&#39;) {
   return false;
  }
  return true; // All tests passed.
 },
 getIsbn: function() {
  return this.isbn;
 },
 setIsbn: function(isbn) {
  if(!this.checkIsbn(isbn)) throw new Error(&#39;Book: Invalid ISBN.&#39;);
  this.isbn = isbn;
 },
 getTitle: function() {
  return this.title;
 },
 setTitle: function(title) {
  this.title = title || &#39;No title specified&#39;;
 },
 getAuthor: function() {
  return this.author;
 },
 setAuthor: function(author) {
  this.author = author || &#39;No author specified&#39;;
 },
 display: function() {
  alert("isbn:"+this.isbn+" title:"+this.title+" author:"+this.author);
 }
};
var theHobbit = new Book(&#39;0-395-07122-4&#39;, &#39;&#39;, &#39;J. R. R. Tolkein&#39;);
theHobbit.display(); // Outputs the data by creating and populating an HTML element.
</script>

Interface implementation, reference interface, defines many methods.

Internal method names are added with _, for example, this detection method _checkIsbn

<script type="text/javascript">
/* 出版 interface. */
/* var Publication = new Interface(&#39;Publication&#39;, [&#39;getIsbn&#39;, &#39;setIsbn&#39;, &#39;getTitle&#39;,
 &#39;setTitle&#39;, &#39;getAuthor&#39;, &#39;setAuthor&#39;, &#39;display&#39;]); */
var Book = function(isbn, title, author) { // implements Publication
 this.setIsbn(isbn);
 this.setTitle(title);
 this.setAuthor(author);
}
Book.prototype = {
 _checkIsbn: function(isbn) {
  if(isbn == undefined || typeof isbn != &#39;string&#39;) {
   return false;
  }
  return true; // All tests passed.
 },
 getIsbn: function() {
  return this.isbn;
 },
 setIsbn: function(isbn) {
  if(!this._checkIsbn(isbn)) throw new Error(&#39;Book: Invalid ISBN.&#39;);
  this.isbn = isbn;
 },
 getTitle: function() {
  return this.title;
 },
 setTitle: function(title) {
  this.title = title || &#39;No title specified&#39;;
 },
 getAuthor: function() {
  return this.author;
 },
 setAuthor: function(author) {
  this.author = author || &#39;No author specified&#39;;
 },
 display: function() {
  alert("isbn:"+this.isbn+" title:"+this.title+" author:"+this.author);
 }
};
//var theHobbit = new Book(123, &#39;&#39;, &#39;J. R. R. Tolkein&#39;); // 非字符串抛出异常
var theHobbit = new Book(&#39;1990-78sd-1092&#39;, &#39;&#39;, &#39;J. R. R. Tolkein&#39;); 
theHobbit.display(); // Outputs the data by creating and populating an HTML element.
</script>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn