网上手游棋牌-做有情怀、有良心、有品质的IT职业教育机构

            编程硬核资料库,
            随查随看随问答!

            当前位置:首页  >  关于学院  >  技术论坛  >  正文

            web测试之Js中的函数

            时间:2019-08-15 16:40     来源:网上手游棋牌 作者:小锋
            分享: 更多

              在JS中,一般使用函数其实就是为了封装某些操作,或者把编写的程序进行模块化的操作。

              一.函数的声明方式

              1.普通的函数声明

              function box(num1, num2) {

              return num1+ num2;

              }

              2.使用变量初始化函数

              var box= function(num1, num2) {

              return num1 + num2;

              };

              3.使用Function构造函数

              var box= new Function('num1', 'num2' ,'return num1 + num2');

              二.作为值的函数

              ECMAScript中的函数名本身就是变量,所以函数也可以作为值来使用。也就是说,不仅可以像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。

              function box(sumFunction, num) {

              return sumFunction(num);

              }

              function sum(num) {

              return num + 10;

              }

              var result = box(sum, 10);

              三.函数内部属性

              在函数内部,有两个特殊的对象:arguments和this。arguments是一个类数组对象,包含着传入函数中的所有参数,主要用途是保存函数参数。但这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。

              function box(num) {

              if (num <= 1) {

              return 1;

              } else {

              return num * box(num-1);

              }

              }

              对于阶乘函数一般要用到递归算法,所以函数内部一定会调用自身;如果函数名不改变是没有问题的,但一旦改变函数名,内部的自身调用需要逐一修改。为了解决这个问题,我们可以使用arguments.callee来代替。

              function box(num) {

              if (num <= 1) {

              return 1;

              } else {

              return num * arguments.callee(num-1);

              }

              }

              函数内部另一个特殊对象是this,其行为与Java和C#中的this大致相似。换句话说,this引用的是函数据以执行操作的对象,或者说函数调用语句所处的那个作用域。PS:当在全局作用域中调用函数时,this对象引用的就是window。

              window.color = '红色的';

              alert(this.color);

              var box = {

              color : '蓝色的',

              sayColor : function () {

              alert(this.color);

              }

              };

              box.sayColor();

              alert(this.color);

              四.函数属性和方法

              ECMAScript中的函数是对象,因此函数也有属性和方法。每个函数都包含两个属性:length和prototype。其中,length属性表示函数希望接收的命名参数的个数。

              function box(name, age) {

              alert(name + age);

              }

              alert(box.length);

              function box(num1, num2) {

              return num1 + num2;

              }

              function sayBox(num1, num2) {

              return box.apply(this, [num1, num2]); }

              function sayBox2(num1, num2) {

              return box.apply(this, arguments);

              }

              alert(sayBox(10,10));

              alert(sayBox2(10,10));

              call()方法于apply()方法相同,他们的区别仅仅在于接收参数的方式不同。对于call()方法而言,第一个参数是作用域,没有变化,变化只是其余的参数都是直接传递给函数的。

              function box(num1, num2) {

              return num1 + num2;

              }

              function callBox(num1, num2) {

              return box.call(this, num1, num2);

              }

              alert(callBox(10,10));

              var color = '红色的';

              var box = {

              color : '蓝色的'

              };

              function sayColor() {

              alert(this.color);

              }

              sayColor();

              sayColor.call(this);

              sayColor.call(window);

              sayColor.call(box);

              当我们使用call(box)方法的时候,sayColor()方法的运行环境已经变成了box对象。

              使用call()或者apply()来扩充作用域的最大好处,就是对象不需要与方法发生任何耦合关系耦合,就是互相关联的意思,扩展和维护会发生连锁反应。

            相关文章

            • 北京总部地址:北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
              北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼
              咨询电话:400-811-9990
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、Linux云计算+网络安全培训、互联网营销培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 深圳校区地址:深圳市宝安区宝安大道5010号西部硅谷B座A区6层A605/B座C区1层108
              咨询电话:0755-23015275/23015546-801/86660670
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、Linux云计算+网络安全培训、互联网营销培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
              咨询电话:400-811-9990 021-65233829-609
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、Linux云计算+网络安全培训、互联网营销培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 广州校区地址:广州市天河区元岗路200号慧通产业园B9三层
              咨询电话:020-87088521
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 郑州二七区校区地址:郑州市二七区航海中路60号海为科技园C区10层
              郑州高新区校区地址:郑州市高新区金梭路与银杏路交叉口教育科技产业园南门D座4层
              咨询电话:0371-55191750/18610973027
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 大连校区地址:辽宁省大连市高新园区爱贤街10号大连设计城A座901
              咨询电话:400-811-9990
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 武汉金融港校区地址:武汉市东湖高新技术开发区光谷大道77号金融港B18栋3楼
              武汉智慧园校区地址:武汉市东湖高新技术开发区光谷大道61号智慧园21栋2楼
              咨询电话:027-59313371
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 成都校区地址:成都市武侯区科华北路62号力宝大厦N(北楼)16楼
              咨询电话:18628039301
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
              咨询电话:029-85363390
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 杭州旺田校区:浙江省杭州市江干区九堡旺田书画城A座4层
              杭州龙驰校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层
              咨询电话:400-811-9990 0571-86893632/0571-86094032
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 青岛校区地址:青岛市市北区龙城路31号卓越世纪中心4号楼5层
              咨询电话:18610973011
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 重庆校区地址:重庆市高新区科园一路2号大西洋国际12-1
              咨询电话:400-811-9990 023-68883009
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
              咨询电话:0731-85513210
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 哈尔滨校区地址:哈尔滨市松北区世泽路689号科技创新城4号楼11楼
              咨询电话:400-811-9990/0451-87173191
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 南京校区地址:南京市建邺区应天大街780号弘辉产业园1栋2层
              咨询电话:400-811-9990
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 太原校区地址:太原市小店区长治路230号能源互联网大厦6层
              咨询电话:400-811-9990 16603513433
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 沈阳校区地址:辽宁省沈阳市浑南区世纪路16号东大软件园B园B1座A201
              咨询电话:400-811-9990
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 合肥校区地址:合肥市包河区徽州大道396号东方广场B座12A
              咨询电话:400-811-9990
              面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
              认证课程:软考、Adobe认证、PMP认证、红帽RHCE认证
            • 网上手游棋牌服务号

              了解手游棋牌动态
              关注网上手游棋牌服务号

            • 网上手游棋牌移动站

              扫一扫快速进入
              手游棋牌移动端页面

            • 手游棋牌互联服务号

              扫码匿名提建议
              直达CEO信箱

                      网上手游棋牌网上手游棋牌