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中几个重要的属性(this、constructor、prototype)介绍
May 19 Javascript
浅谈JavaScript Math和Number对象
Jan 26 Javascript
JavaScript数据库TaffyDB用法实例分析
Jul 27 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
Jan 26 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
Sep 08 Javascript
JSON 数据详解及实例代码分析
Jan 20 Javascript
限时抢购-倒计时的完整实例(分享)
Sep 17 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
vuejs移动端实现div拖拽移动
Jul 25 Javascript
JavaScript判断数组类型的方法
Oct 23 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
Aug 13 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 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异常处理浅析
2015/05/12 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
Laravel中注册Facades的步骤详解
2016/03/16 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PDO::getAttribute讲解
2019/01/28 PHP
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
jQuery滚动加载图片实现原理
2015/12/14 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
Python重新引入被覆盖的自带function
2014/07/16 Python
python通过线程实现定时器timer的方法
2015/03/16 Python
python创建临时文件夹的方法
2015/07/06 Python
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
python实现简单中文词频统计示例
2017/11/08 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
通过Python实现一个简单的html页面
2020/05/16 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
行政管理人员精品工作推荐信
2013/11/04 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python