Project1
标题:
脚本问题,index()和_index的区别
[打印本页]
作者:
yang1zhi
时间:
2017-10-6 23:09
标题:
脚本问题,index()和_index的区别
Window_Selectable.prototype.index = function() {
return this._index;
};
MV脚本里面有很多,这样的函数
这个的意义是什么
直接
_index 不就可以使用的吗
为什么非要经过
index()
作者:
刺夜之枪
时间:
2017-10-7 02:38
本帖最后由 刺夜之枪 于 2017-10-6 14:12 编辑
index()和_index的区别
_index是
Window_Selectable
类
(class)
的一个
成员变量
(
member variables
)。index()则 是该类的一个
getter
函数
。
直接 _index 不就可以使用的吗
至少从执行的角度来讲,_index的确可以直接读取/修改。
为什么非要经过index()
这仅仅是一个由开发者(写这个代码的人)定下的规范问题。
在许多JavaScript的规范里,
私有成员变数
(private member variables)的表示方式是在变量名前面加一个‘_’用来直观地表示“这个变量是本类的私有成员变数”。
这样规定了程序的其他地方无法直接获取/修改这个变量。为了读取这个变量则需要创建一个getter函数在你的例子里就是index(),通过调用 xxx
.index() 读取私有变量 '_index'。
其作用之一就是对外保持统一的接口
index()
:假设程序的100个其他地方调用了.index(),当代码需要修改的时候,只要修改getter的内容即可。
拓展阅读:
1.
谷歌JavaScript规范
2.
封装 (Encapsulation)
作者:
芯☆淡茹水
时间:
2017-10-7 07:41
def initialize
@index = 0
end
def index
return @index
end
作者:
diynopose
时间:
2017-10-8 21:47
其实无所谓呀,在调用的时候并没有什么区别。
是因为this._index,是一个可写的变量,说不定某个位置调用把值改变了
而用函数封装起来后,说明这里只是单纯的调用,不能对值进行修改。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1