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使用技巧精萃[代码非常实用]
Nov 21 Javascript
js操作ajax返回的json的注意问题!
Feb 23 Javascript
js setTimeout 参数传递使用介绍
Aug 13 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
Dec 26 Javascript
bootstrap table 数据表格行内修改的实现代码
Feb 13 Javascript
浅谈angularjs依赖服务注入写法的注意点
Apr 24 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
jQuery 查找元素操作实例小结
Oct 02 jQuery
React实现类似淘宝tab居中切换效果的示例代码
Jun 02 Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 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 str_replace的替换漏洞
2008/03/15 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
Python用threading实现多线程详解
2017/02/03 Python
Python探索之Metaclass初步了解
2017/10/28 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
python实现堆排序的实例讲解
2020/02/21 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
三维科技面试题
2013/07/27 面试题
理财计划书
2014/08/14 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
卫生院义诊活动总结
2015/05/07 职场文书