js避免污染全局变量10bet:

来源:http://www.chinese-glasses.com 作者:Web前端 人气:52 发布时间:2020-05-06
摘要:时间: 2019-09-13阅读: 187标签: 变量造成污染全局变量的原因 函数的定义 :把具有独立功能的代码块组织为一个小模块,需要的时候调用。函数名称可以由字母,下划线和数字组成 不能以

时间: 2019-09-13阅读: 187标签: 变量造成污染全局变量的原因

函数的定义:把具有独立功能的代码块组织为一个小模块,需要的时候调用。 函数名称可以由字母,下划线和数字组成 不能以数字开头,不能与关键字重名 注:函数名不能重复

在经典页面中,经常会有这样的引用js

定义函数的格式:def 函数名():

script src="js/index/a.js"/scriptscript src="js/index/b.js"/scriptscript src="js/index/c.js"/script

                                调用函数

a.js

函数参数:在函数内部,把参数当作变量使用,进行需要的数据处理

function testA() { return 'testA';}

定义函数时参数叫做形参    调用函数时参数叫做实参

b.js

return 用来返回函数结果  注:return 后代码都不会被执行

function testB() { return 'testB';}

函数的嵌套使用: 一个函数里又调用了另一个 函数,这就是函数的嵌套使用 

上面定义的函数都是全局变量 这就造成了污染全局变量,那么这样有什么危害呢?

如下:

危害

                       deftestB():

随着项目的变大,全局变量越来越多,变量很容易覆盖。而且访问全局变量的时间会很长,不利于开发。

                              print('---- testB start----')

如何改良

                              print('这里是testB函数执行的代码...(省略)...')

改良后的js文件内容

                              print('---- testB end----')

a.js

                      deftestA():

let A = function() { function testA() { return 'testA'; } return { testA: testA } //.....}

                              print('---- testA start----')

把所有a.js里面的代码用一个函数包起来 ,这样里面定义的变量就由全局变量变成了局部变量,需要调用testA的时候 可以用a().testA()来实现,相当于一个js文件是一个模块,如下:

                              testB()

index.js

                             print('---- testA end----')

let aInstance = new A(); //模块名要大写aInstance.testA();

                      testA()

结果

                      ---- testA start----

                     ---- testB start----

                     这里是testB函数执行的代码...(省略)...

                     ---- testB end----

                    ---- testA end----

函数有四种类型: 1:无参数,无返回值  2:无参数,有返回值  3:有参数,无返回值  4:有参数,有返回值

如:    1、def  print_str():   #无参无返                         2、def  print_str1(a,b):   #有参无返

                print("您好")                                                       print(a,b)

            3、def  print_str2(a)   #有参有返                     4、def  print_str3():   #无参有返

                 return   a                                                           return   “烟”

本文由10bet发布于Web前端,转载请注明出处:js避免污染全局变量10bet:

关键词:

最火资讯