54.get set

当程序查询对象属性时调用get方法,如果只有get方法那么他是一个只读属性,//程序对对象属性进行赋值操作时调用set方法,如果只有set方法那么他是是一个只读属性

        <script type="text/javascript">
            var p = {
                x:1.0,
                y:1.0,
                //当程序查询对象属性时调用get方法,如果只有该属性标识这是一个只读属性
//                get r(){
//                    console.log('this.x->',this.x,'this.y->',this.y)
//                    return Math.sqrt(this.x*this.x+this.y*this.y)
//                },
                //程序对对象属性进行赋值操作时调用set方法,如果只有该属性标识这是一个只写属性
                set r(newvalue){
                    var oldvalue = Math.sqrt(this.x*this.x+this.y*this.y)
                    var ratio = newvalue/oldvalue
                    this.x *= ratio
                    this.y *= ratio
                }
            }
            
//            var q = inherit(p)
//            q.x = 1,q.y = 1;
            console.log('1->',p.r)//注释掉get r 这里就是undefine
            console.log(p.x,p.y)
            p.r = 4//注释掉set r 这个赋值操作无效
            console.log('2->',p.r)//注释掉get r 这里就是undefine
            console.log(p.x,p.y)
        </script>

 

posted @ 2017-09-18 15:38  famCc  阅读(122)  评论(0编辑  收藏  举报