javascript 中的getter,setter

yupeng發表於2013-12-18

1.什麼是getter,什麼是setter?

  getter 是一種獲得屬性值的方法,setter是一種設定屬性值的方法。

2.怎麼定義?

  有2種辦法:

  • 在物件初始化的時候定義
  • 在物件定義後的時候定義

3.例子:

<!DOCTYPE html>
<html>
<head>
    <title>yupeng's document </title>
    <meta charset="utf-8"/>
</head>
<body>
    <script type="text/javascript">
        //demo1
        var obj = {

            val:100,
            get getval(){
                return this.val;
            },
            set setval(x){
                this.val = x;
            }
        }

        console.log(obj.getval);
        obj.setval = 101;
        console.log(obj.getval);

        //demo2
        
        var obj2 = {

            val:200
        }

        obj2.__defineGetter__('name',function(){return this.val});
        obj2.__defineSetter__('name',function(name){this.val = name;})

        console.log(obj2.name)
        obj2.name = 201;
        console.log(obj2.name);
    </script>
</body>
</html>

結果:

100
101
200
201

相關文章