Javascript魔法方法:__defineGetter__,__defineSetter__
来源:互联网 发布:知乎运营 编辑:程序博客网 时间:2024/06/06 00:38
转自:http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用__defineGetter__和__defineSetter___控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
1
2
3
4
5
6
7
8
9
function
Book(name){
this
.bookName=name;
this
.getName=
function
(){
return
"《"
+
this
.bookName+
"
》
"
;
}
this
.setName=
function
(name){
this
.bookName=name;
}
}
接下来我们只要规定使用者通过setName和getName方法对成员变量bookName操作就可以了.
但实际上还可以更方便:
1
2
3
4
5
6
7
8
9
10
11
function
Book(name){
this
.bookName=name;
this
.getName=
function
(){
return
"《"
+
this
.bookName+
"》"
;
}
this
.setName=
function
(name){
this
.bookName=name;
}
}
Book.prototype.__defineGetter__(
"name"
,
function
(){
return
"《"
+
this
.bookName+
"》"
;});
Book.prototype.__defineSetter__(
"name"
,
function
(name){
this
.bookName=name;});
这样,就可以直接通过Book对象的name属性来返回带有书名符号的字符串而又不影响成员变量本身了.
0 0
- Javascript魔法方法:__defineGetter__,__defineSetter__
- javascript魔方:__defineGetter__,__defineSetter__
- __defineGetter__ and __defineSetter__
- 关于__defineGetter__ 和__defineSetter__的说明
- 关于__defineGetter__ 和__defineSetter__的说明
- 关于__defineGetter__ 和__defineSetter__的说明
- 关于__defineGetter__ 和__defineSetter__的说明_应用技巧
- Internet Explorer 9 下__defineGetter__ __defineSetter__ 无效解决方法
- 利用 __defineGetter__ 和 __defineSetter__ 给对像追加属性
- __defineSetter__
- Python魔法方法--基本的魔法方法
- python中魔法属性和魔法方法
- PHP中的魔法方法
- PHP 魔法属性&方法
- Python中的魔法方法
- {python} 魔法方法
- python魔法方法
- 方法的开发魔法
- extjs4.1从服务器端动态获取数据确定条数画出折线图
- Tokenize 获取用分隔符标记的每个字符串
- LeetCode[Backtracking]: Subsets
- freemarker简单学习
- iOS多线程技术
- Javascript魔法方法:__defineGetter__,__defineSetter__
- C++之 函数指针
- c#基础语言编程-装箱和拆箱
- Quartz2.2.1在JAVA中的简单用法 (二)
- [从零开始学设计模式-java]单例模式(Singleton)
- 数据库学习笔记4-sqlserver 的聚集索引和非聚集索引
- python字符串前缀 u和r的区别
- spring框架学习(六)AOP
- 强引用、弱引用、软引用、虚引用