js初始化验证实例详解


Posted in Javascript onNovember 26, 2016

本文实例讲述了js初始化验证的方法。分享给大家供大家参考,具体如下:

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

对isbn进行验证。是否定义,是否为字符串等等。对title进行判断,设置默认。

另一种实现方式

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

接口实现,参考接口,定义了好多方法。

内部方法命名加_,例如这个检测的方法 _checkIsbn

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

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
网站被黑的假象--ARP欺骗之页面中加入一段js
May 16 Javascript
JavaScript Object的extend是一个常用的功能
Dec 02 Javascript
『jQuery』名称冲突使用noConflict方法解决
Apr 22 Javascript
js实现可得到不同颜色值的颜色选择器实例
Feb 28 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
Jun 20 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
详解如何在项目中使用jest测试react native组件
Feb 09 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
详解vue2.0模拟后台json数据
May 16 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 Javascript
vue判断按钮是否可以点击
Apr 09 Vue.js
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 #Javascript
JS匿名函数实例分析
Nov 26 #Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
Nov 26 #Javascript
JS类的定义与使用方法深入探索
Nov 26 #Javascript
js控制台输出的方法(详解)
Nov 26 #Javascript
jQuery基于排序功能实现上移、下移的方法
Nov 26 #Javascript
node.js中的事件处理机制详解
Nov 26 #Javascript
You might like
PHP similar_text 字符串的相似性比较函数
2010/05/26 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
mysql总结之explain
2012/02/27 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
json 入门基础教程 推荐
2009/10/31 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
jQuery给动态添加的元素绑定事件的方法
2015/03/09 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python简单的制作图片验证码实例
2017/05/31 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
python中rc1什么意思
2020/06/19 Python
降低python版本的操作方法
2020/09/11 Python
美国最大点评网站:Yelp
2018/02/14 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
旅游业大学生创业计划书
2014/01/31 职场文书
《中华少年》教学反思
2014/02/15 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
四大名著读书笔记
2015/06/25 职场文书
公司借款担保书
2015/09/22 职场文书
技术入股合作协议书
2016/03/21 职场文书