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连接access数据库的方法
Nov 17 Javascript
JavaScript 语言的递归编程
May 18 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
Jun 28 Javascript
php的文件上传入门教程(实例讲解)
Apr 10 Javascript
js事件处理程序跨浏览器解决方案
Mar 27 Javascript
简单实现jquery焦点图
Dec 12 Javascript
Bootstarp 基础教程之表单部分实例代码
Feb 03 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
详解Vue中组件传值的多重实现方式
Aug 16 Javascript
基于Vue中使用节流Lodash throttle详解
Oct 30 Javascript
vue在响应头response中获取自定义headers操作
Jul 24 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对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
js getElementsByTagName的简写方式
2010/06/27 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
javascript与有限状态机详解
2014/05/08 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
Python 中迭代器与生成器实例详解
2017/03/29 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
python模块常用用法实例详解
2019/10/17 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
往来会计岗位职责
2013/12/19 职场文书
大学生收银员求职信分享
2014/01/02 职场文书
工作交流会欢迎词
2014/01/12 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
大学迎新生标语
2014/10/06 职场文书
离职报告格式
2014/11/04 职场文书
单位未婚证明范本
2014/11/25 职场文书
《观潮》教学反思
2016/02/17 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
python保存图片的四个常用方法
2022/02/28 Python