当前位置:首页 > 开发 > Web前端 > JavaScript > 正文

Javascript魔法方法:__defineGetter__,__defineSetter__

发表于: 2015-07-03   作者:hongtoushizi   来源:转载   浏览:
js
摘要: 转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/ 在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为 例如,在一个图书类中,我们自动为Book加上书名符号: function Book(name){

转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/

在javascript的类中,可以用defineGetterdefineSetter_控制成员变量的Get和Set行为

例如,在一个图书类中,我们自动为Book加上书名符号:

function Book(name){  
    this.bookName=name;
    this.getName=function(){
        return "《"+this.bookName+"》";
    }
    this.setName=function(name){
        this.bookName=name;
    }
}

接下来我们只要规定使用者通过setName和getName方法对成员变量bookName操作就可以了.

但实际上还可以更方便:

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属性来返回带有书名符号的字符串而又不影响成员变量本身了.

Javascript魔法方法:__defineGetter__,__defineSetter__

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号