JS匿名函数类生成方式实例分析


Posted in Javascript onNovember 26, 2016

本文实例讲述了JS匿名函数类生成方式。分享给大家供大家参考,具体如下:

<script type="text/javascript">
var Book = (function() {
 // 私有静态属性
 var numOfBooks = 0;
 // 私有静态方法
 function checkIsbn(isbn) {
  if(isbn == undefined || typeof isbn != 'string') {
   return false;
  }
  return true;
 }
 // 返回构造函数
 return function(newIsbn, newTitle, newAuthor) { // implements Publication
  // 私有属性
  var isbn, title, author;
  // 特权方法
  this.getIsbn = function() {
   return isbn;
  };
  this.setIsbn = function(newIsbn) {
   if(!checkIsbn(newIsbn)) throw new Error('Book: Invalid ISBN.');
   isbn = newIsbn;
  };
  this.getTitle = function() {
   return title;
  };
  this.setTitle = function(newTitle) {
   title = newTitle || 'No title specified';
  };
  this.getAuthor = function() {
   return author;
  };
  this.setAuthor = function(newAuthor) {
   author = newAuthor || 'No author specified';
  };
  // 控制对象数目,构造函数
  numOfBooks++; // Keep track of how many Books have been instantiated
         // with the private static attribute.
  if(numOfBooks > 5) throw new Error('Book: Only 5 instances of Book can be '
    + 'created.');
  this.setIsbn(newIsbn);
  this.setTitle(newTitle);
  this.setAuthor(newAuthor);
 }
})();
// 公有静态方法
Book.convertToTitleCase = function(inputString) {
 alert('convertToTitleCase');
};
// 公有非特权方法
Book.prototype = {
 display: function() {
  alert("isbn:"+this.getIsbn()+" title:"+this.getTitle()+" author:"+this.getAuthor());
 }
};
//var theHobbit = new Book(123, '', 'J. R. R. Tolkein'); // 非字符串抛出异常
var theHobbit = new Book('1990-78sd-1092', '', 'J. R. R. Tolkein');
theHobbit.display();
//theHobbit.convertToTitleCase(); // Uncaught TypeError: Object #<Object> has no method 'convertToTitleCase'
Book.convertToTitleCase(); // 输出convertToTitleCase
var theHobbit2 = new Book('1990-78sd-1092', '', 'J. R. R. Tolkein');
theHobbit2.display();
var theHobbit3 = new Book('1990-78sd-1092', '', 'J. R. R. Tolkein');
theHobbit3.display();
var theHobbit4 = new Book('1990-78sd-1092', '', 'J. R. R. Tolkein');
theHobbit4.display();
var theHobbit5 = new Book('1990-78sd-1092', '', 'J. R. R. Tolkein');
theHobbit5.display();
var theHobbit6 = new Book('1990-78sd-1092', '', 'J. R. R. Tolkein');
theHobbit6.display(); // Uncaught Error: Book: Only 5 instances of Book can be created.
</script>

这里已经把js出神入化了,佩服到极致,代码清晰简洁,美观,注释恰到好处。

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

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

Javascript 相关文章推荐
JQUERY CHECKBOX全选,取消全选,反选方法三
Aug 30 Javascript
JavaScript入门教程(5) js Screen屏幕对象
Jan 31 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
js实现文字滚动效果
Mar 03 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
May 12 Javascript
每日十条JavaScript经验技巧(二)
Jun 23 Javascript
JS实现数字格式千分位相互转换方法
Aug 01 Javascript
详解Js模板引擎(TrimPath)
Nov 22 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
Apr 13 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
Sep 05 Javascript
详解利用Angular实现多团队模块化SPA开发框架
Nov 27 Javascript
正则表达式替换html元素属性的方法
Nov 26 #Javascript
js初始化验证实例详解
Nov 26 #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
You might like
德劲1103二次变频版的打磨
2021/03/02 无线电
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
PHP查询网站的PR值
2013/10/30 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
PHP中SESSION过期设置
2021/03/09 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
js实时获取系统当前时间实例代码
2013/06/28 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
js实现简单的秒表
2020/01/16 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
写了个监控nginx进程的Python脚本
2012/05/10 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
Python中常用的os操作汇总
2020/11/05 Python
护士求职推荐信范文
2013/11/23 职场文书
优秀党员主要事迹
2014/01/19 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
2014年工商所工作总结
2014/12/09 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书