javascript的出现,在很长的一段时间里,只是充当表单验证之类的一些琐碎事情,通过减少提交数据的错误率来提高网络操作效率。随着ajax的出现和兴盛起来,基于web的应用程序迎来了一次转机,“富客户端”一词与web应用的联系开始流行起来,随之而来的是javascript受到了极大的重视,各种框架层出不穷。
个人专门去查看学习了网上的不少资料,现将所得整理出来以便随时查阅。 [b]函数的理解:[/b] “面向对象编程(oop)”的概念随着C++、C#和JAVA的兴起而声明远播,javascript处于一些***?的考虑,硬是要与“面向对象”拉扯上亲戚,号称基于对象的编程语言(感觉不伦不类)。\r\n 在“面向对象语言”中都有“类”这个概念,它是对具有一些相同状态(属性)和行为(方法)的事物的抽象,就是说满足这个类的事物都具有一定的共性。而在javascript中,类对应的是函数。
函数的创建
函数的创建和定义是灵活多变的(换个角度也可以说是混乱的),归类如下:
1、定义方式创建函数 function aFunc(x){ return x; }
2、声明方式创建函数 var aFunc= function(x){ return x; }
3、用Function构造函数创建(不常用到的),参数名和函数体都是作为字符串被传递。我们可以随意的增加参数,函数体会最后一个字符串(如果没有参数,只写函数体)。函数体没必要将都写在一行里,可以使用\或者使用字符串连接符+来分隔长代码(\标记告诉JavaScript在下一行查找字符串的其余部分)。
var aFunc = new Function("x","return x;");
var aFunc = new Function("a", "b", "alert" +
"(a+' + ' +b);\
return a+b;");
alert(aFunc(3,4));
Function创建的函数不会被编译,要到运行时才会编译创建,这样可能会影响效率。另两种方式创建的函数会被编译,调用的时候直接执行。
用以上这三中方式创建的函数,其中声明方式(Function构造函数方式)和定义方式存在差别:
有同名函数时如(
var func = function(){return 1;}
func(); //返回1
var func = function(){return 2;}
func(); //返回2
两个调用分别返回1,2
function func(){ return 1;}
func();
function func(){ return 2;}
func();
两个调用都返回2 )
这种差别是由于JavaScript解释引擎的工作机制所导致的。 JavaScript解释引擎在执行任何函数调用之前,首先会在全局作用域中注册以定义方式创建的函数(后 定义的函数重写了先定义的函数),然后再依次执行函数调用。相反,对于声明方式创建的函数,JavaScript解释引擎会像对待任何声明的变量一样,等到执行调用时才会对变量求值。由于JavaScript代码是从上到下顺序执行的,因此当执行第一个func()调用时,func函数的代码就是首先定义代码;而当执行第二个func()调用时,func函数的代码又变成了后来定义的代码。
函数的封装
function ObjectTest(){
//全局的属性和方法,可以理解为public
this.lastLoginTime = new Date();
this.theDate = function(){ alert(this.lastLoginTime.getMonth()+"_"+this.lastLoginTime.getDate()); }
//私有的属性和方法,可以理解为private
var lastLoginTime1 = new Date();
var theDate1 = function(){ alert(this.lastLoginTime.getMonth()+"_"+this.lastLoginTime.getDate()); } }
每个javascript函数都有一个属性--prototype,可以通过这个属性给函数添加全局的属性和方法。
//public方法,对于全局的方法和属性可通过对象进行调用
ObjectTest.prototype.getYear = function(){ return '2009';//this.lastLoginTime.getYear(); }
//静态方法,对于静态方法的调用:typeName.methodName(),不可以通过对象调用
ObjectTest.getMonth = function(){ return '01'; }
未完待续!整理的过程是一个学习的过程,发出来希望大佬们补充,只要是有意义的,板砖也行。
关于javascript函数,下面有一篇不错的文章:
http://www.blueidea.com/tech/web/2006/3823_8.asp
分享到:
相关推荐
深入认识javascript中得eval函数深入认识javascript中得eval函数深入认识javascript中得eval函数
认识函数作用域 作用域的分类 JavaScript 认识函数作用域 思考:声明变量后就可以在任意位置使用该变量嘛? 回答:不是。 举例:函数内var关键字声明的变量,不能在函数外访问。 示例 1.作用域分类 认识函数作用域 ...
Javascript函数之getOwnPropertyDescriptor()方法使用和认识
jQuery 是一个 JavaScript 函数库。 jQuery 库包含以下特性: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaScript 特效和动画 HTML DOM 遍历和修改 AJAX Utilities 向您的页面添加 jQuery 库 ...
第一部分 认识JavaScript 第1章 Javascript浅谈 1-1什么是JavaScript? 1-2如何使用Javascript 1-3 Javascript和 HTML的搭配 1-4 JavascnPt和一般程序语言的差异 1-5 Javascnpt的限制 第2章 撰写Javascnpt 2-1 ...
js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数js回调函数...认识js回调函数的使用技巧和认识js回调函数的使用技巧和认识js回调函数的使用技巧和认识js回调函数的使用技巧和认识js回调函数的使用技巧和...
深入认识JavaScript中的函数
API:应用程序编程接口,是一些预先定义的函数,这些函数是由某个软件开放给开发人员使用的,帮助开发者实现某种功能,开发人员无须访问源码、无须理解其内部工作机制细节,只需知道如何使用即可。例如,调起手机的...
一、认识函数 javaScritp中的的函数 // 函数声明语法定义 function fun1(name, age) { console.log(name + ',' + age);...javaScript函数带默认参数 /* 默认参数 */ function fun1(name, age = 17) { conso
《JavaScript核心概念及实践》可以供JavaScript初学者阅读,以快速学习和掌握这门语言的核心内容:对于有一定经验的JavaScript程序员,则可以通过本书加深和拓展对JavaScript的认识,提升应用开发能力。 目录: 第1...
我们来具体认识认识函数。 (一)首先是函数的定义: 在ECMAscript函数的定义是 关键字function 函数名( 参数){主体;return(返回值)};这四部分组成的,但是在脚本语言中函数的定义却分为三种方式定义: 形式1:...
(1)介绍javascript中的eval函数的用法 (2)如何在函数内执行全局代码 ►先来说eval的用法,内容比较简单,熟悉的可以跳过。 eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行...
我收集的javascript问题解决方案,包括 JavaScript 对象与数组参考大全;JavaScript 函数;Javascript 事件;...深入认识javascript中的eval函数; 文本框限制输入的javascript的实现方法;字符串拆分的问题
1)介绍javascript中的eval函数的用法 (2)如何在函数内执行全局代码 ►先来说eval的用法,内容比较简单,熟悉的可以跳过。 eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行...
JavaScript函数(function) 函数是js语言中用的十分普遍的一种对象,首先我们来认识一下函数: 我们在编程的时候经常会写到一些功能并且会重复使用到它,为了避免每次使用时都重新写一遍代码,我们可以将代码封装进...
1.认识数组 数组就是某类数据的集合,数据类型可以是整型、字符串、甚至是对象。Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能。 ...