javascript函数--类的认识

本文深入探讨JavaScript函数的创建、封装及作用域等特性,并对比不同创建方式间的差异,为读者提供全面的技术指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      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

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值