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矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
May 06 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
Mar 12 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
一个获取第n个元素节点的js函数
Sep 02 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
浅谈Angular的$q, defer, promise
Dec 20 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
JavaScript封装单向链表的示例代码
Sep 17 Javascript
javascript canvas实现雨滴效果
Jun 09 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
用Socket发送电子邮件
2006/10/09 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
php验证码生成器
2017/05/24 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
js实现自定义路由
2017/02/04 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
通过js示例讲解时间复杂度与空间复杂度
2019/08/06 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
python中turtle库的简单使用教程
2020/11/11 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
支部鉴定材料
2014/06/02 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
2015政治思想表现评语
2015/03/25 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python