当前位置:首页 > 开发 > 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

    震惊

    震惊

编辑推荐
Python中,在名字后面和前面加上双下划线表示魔法方法。如果类实现了这些方法中的某一个,那么Pytho
推荐语: 今天推荐一篇华为同事的同事翻译的一篇文章,推荐的主要原因是作为一个华为员工居然晚上还
第九章:魔法方法、属性和迭代器 1:魔法方法:比如 __future__ 2:构造方法 介绍的第一个魔法是构造
之前我们提出过《建立你自己的知识管理系统》的讨论,相当受欢迎。今天跟大家再来讨论并分享一点经
我们昨天与大家讨论过如何简化自己的PC工作环境(上),让电脑的使用更加快捷高效。今天再接着来谈一
  沟通是维系人与人之间的桥梁,因此无论是在生活中还是职场上,我们都要建立良好的关系网,学会
一种特征是否可以遗传,有时候不是一目了然的。举例说,肥胖可以遗传吗?确实常有这样的情况:如果
这张特别的书页,看起来只有黑白的图案,而将它对着阳光时,则会显现出美丽的色彩,非常神奇。这是
  “magical”这个词经常会被用于苹果产品的营销方案中,但真正使其发扬光大却是从iPad开始。2010
“整理 将会改变你的人生“。 整理不仅是为了让房间变得整洁,更能给你带来幸运,创造幸福。电影开
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号