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 相关文章推荐
Javascript Math对象
Aug 13 Javascript
javascript实现面向对象类的功能书写技巧
Mar 07 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
jQuery插件WebUploader实现文件上传
Nov 07 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
BootStrap 可编辑表Table格
Nov 24 Javascript
JS制作类似选项卡切换的年历
Dec 03 Javascript
jQuery代码实现实时获取时间
Jan 29 Javascript
Vuejs实现带样式的单文件组件新方法
May 02 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
Apr 18 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
May 07 Javascript
浅谈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 jsonp单引号转义
2014/11/23 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
小程序实现多列选择器
2019/02/15 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python实现拼接多张图片的方法
2014/12/01 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python调用百度语音REST API
2018/08/30 Python
django之自定义软删除Model的方法
2019/08/14 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
蛋糕店的商业计划书范文
2014/01/27 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
质检员岗位职责
2015/02/03 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
毕业实习证明范本
2015/06/16 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python