发表于: 2017-07-14 23:03:17

1 841


今日所做:
1.学习js函数部分:私有变量,所谓私有变量,其实就是在函数内部的
变量,由于js中是没有块级作用域的,即在其他的面向对象语言中,
花括号内是一个块级作用域,块级作用域内部的变量从外部是不能够
访问到的,而在js中,花括号内不存在块级作用域,外部依然能够访问
到里面的变量
2.js中唯有函数是特殊的,即函数内部是一个私有作用域,而在函数内部
创建变量,就是私有变量,从外面是不能够访问到的
3.这个私有作用域有很大的利用空间,比如为了完成一个方法,需要使用一些中间
变量,而方法执行完后,这些变量就不需要使用了,那这种情况就可以把需要
用到的变量和方法都放到一个匿名函数中,这样的话这些变量只有在函数内部能够
访问到,不会污染到全局的环境,而且一旦函数执行完毕,这些变量就会销毁掉
4.除了创建命名空间外,私有变量还有更多的用法,比如有这样一个对象或说是
函数,里面有自身的私有变量,不希望在函数外面可以随意更改,但与此同时呢,
又希望有一些方法,来对这些私有变量进行动态的更改,这个情况就相当于是做
一个简单的应用级的模块了,那么要考虑的问题就是如何把私有变量运送到外部去
使得从外部可以通过一些方法访问到这些变量或是更改变量,三个方法,第一个是
在模块函数中设置好可以操作私有变量的函数,但这些函数的定义要用this来定义,
即把模块函数当做构造函数来定义,这样可以通过直接new一个实例,来得到模块函数
中的可以操作私有变量的方法;第二个方法是在模块函数内创建一个全局变量,
全局变量等于一个函数,然后对这个函数设置prototype的属性,属性为可以操作
私有变量的函数,然后使用的时候直接new一个全局变量就可以了;第三个方法
是在模块函数中,定义完了私有变量之后,直接return一个对象,对象中要有可以
操作私有变量的方法;
5.上述这些办法目前还没看到实际的用处,但是不得不说非常之巧妙,可能
在做组件或是做大框架的时候会用到吧
明日计划:
查看后台项目
遇到问题:
暂无
今日收获:
对函数有了更加深入的了解


返回列表 返回列表
评论

    分享到