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 相关文章推荐
利用cookie记住背景颜色示例代码
Nov 04 Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 Javascript
node.js中的fs.appendFileSync方法使用说明
Dec 17 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
Apr 17 Javascript
七夕情人节丘比特射箭小游戏
Aug 20 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
Zepto实现密码的隐藏/显示
Apr 07 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
vue修改对象的属性值后页面不重新渲染的实例
Aug 09 Javascript
微信提示 在浏览器打开 效果实现过程解析
Sep 10 Javascript
layui form表单提交之后重新加载数据表格的方法
Sep 11 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
Aug 04 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类中Static方法效率测试代码
2010/10/17 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
Python简单定义与使用二叉树示例
2018/05/11 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
一个C/C++编程面试题
2013/11/10 面试题
电焊工工作岗位职责
2014/02/06 职场文书
利群广告词
2014/03/20 职场文书
留学推荐信范文
2014/05/10 职场文书
政府采购方案
2014/06/12 职场文书
校本教研活动总结
2014/07/01 职场文书
道路交通事故赔偿协议书
2014/10/24 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
创业计划书之面包店
2019/09/12 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers