ECMAScript 创建自己的js类库


Posted in Javascript onNovember 22, 2012

ECMAScript中最有意思,最强大的地方在于函数。最进在完善自己的js类库的时候发现我们经常在用函数,但真的很少有人懂得ECMAScript函数功能。
1:什么是函数?

ECMAScript函数其实就是对象,每个函数都是Function类型的实例而且有属性和方法,由于函数是对象,函数名其实就是指向函数对象的指针,不会与某个函数绑定。
2:创建函数的方法

(1):function Person(name) 
 { 


return name; 

 } 
(2):var Person=function(name) 

{ 

return name; 

} 
(3):var Person=new function(“name”,”return name”);(不推荐使用,ECMAScript会解析两次所以不推荐使用)

3:函数声明和函数表达式的不同

ECMAScript对函数声明和函数表达式的解析并非一视同仁,解析器会先读取函数声明,并使其在任何代码前都可用。

例:

assert(false); 
function assert(value, msg) { 
if (!value) { 
alert (msg || (value + " does not equal true")); 
} 
}

ECMAScript 创建自己的js类库 
函数表达式为执行到这一行才解析器才会解析
如:assert(false); 
var assert= function (value, msg) { 
if (!value) { 
alert (msg || (value + " does not equal true")); 
} 
}

ECMAScript 创建自己的js类库 
4:理解this属性
this 属性是我们经常用的属性,其行为与Java,C#,PHP大致类似。
如:window.name='用未来思考现在'; 
window.name = "用未思考现在; 
showName(); 
function showName() { 
alert(this.name); 
}

ECMAScript 创建自己的js类库 
5:创建自己的类库插件
简单的介绍了下函数,对于理解函数这些内容远远不够,例如构造函数模式,原形模式,原形链等等都是要花很多时间去理解。
创建类
var Class = function () { 
var extclass = function () { 
//接收属性传过来的参数 
this.init.apply(this, arguments); 
} 
//给类添加自定义属性 
extclass.prototype.init = function () { }; 
//给prototypr定义别名? 
extclass.fn = extclass.prototype; 
//定义类的别名? 
extclass.fn.parent = extclass; 
//给类添加属性 
extclass.extend = function (obj) { 
var extended = obj.extended; 
for (var i in obj) { 
extclass.fn[i] = obj[i]; 
} 
if (extended) extended(extclass); 
}; 
//给实例添加属性 
extclass.include = function (obj) { 
var included = obj.included; 
for (var i in obj) { 
extclass.fn[i] = obj[i]; 
} 
if (included) included(extclass); 
} 
return extclass; 
}

类库大致的框架构建完成,这样我们创建类可以调用extended方法,创建实例可以调用include方法。下一章节会在此基础上扩展更多功能,基于原型给“类”添加继承。
Javascript 相关文章推荐
细说javascript函数从函数的构成开始
Aug 29 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
Oct 24 Javascript
javascript实现的DES加密示例
Oct 30 Javascript
AngularJS语法详解
Jan 23 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 Javascript
基于 Bootstrap Datetimepicker 联动
Aug 03 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
Dec 29 Javascript
node.js监听文件变化的实现方法
Apr 17 Javascript
一文快速详解前端框架 Vue 最强大的功能
May 21 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 Javascript
javascript克隆对象深度介绍
Nov 20 #Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
Nov 20 #Javascript
JS中toFixed()方法引起的问题如何解决
Nov 20 #Javascript
JavaScript实现拼音排序的方法
Nov 20 #Javascript
Js+Flash实现访问剪切板操作
Nov 20 #Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
Nov 19 #Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 #Javascript
You might like
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
PHP文件操作实例总结
2016/09/27 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
js播放wav文件(源码)
2013/04/22 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
快速查询Python文档方法分享
2017/12/27 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
django 自定义过滤器的实现
2019/02/26 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
python安装及变量名介绍详解
2020/12/12 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
毕业生找工作的自我评价
2013/10/18 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
网站推广策划方案
2014/06/04 职场文书
医院标语大全
2014/06/23 职场文书
化妆品促销活动总结
2015/05/07 职场文书
高三语文教学反思
2016/02/16 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python