zoukankan      html  css  js  c++  java
  • __definedGetterSetter__的一些想法

    __definedGetterSetter__ 是JS5在创建对象后内置的方法,用于在读写对象属性的时候执行的方法。

     1         zhangmingzhi.__defineSetter__('age',function(age){
     2             if(age < 30){
     3                 this._age = 'you are young and strong learn more about life ~~~ ';
     4             }else{
     5                 this._age = 'you need to hurry up ';
     6             }
     7         });
     8         zhangmingzhi.__defineGetter__('age',function(){
     9             return this._age;
    10         });

    如图,参数1为监听的对象名称,假如我设置zhangmingzhi.age= 30的时候那么setter函数就会执行,因为他监听的是age属性的变化,我们设置了age属性,那么就触发了方法。

    参数2为回调函数,回调函数接受一个方法,这个方法的参数为你为这个对象被监听函数的值,这里实参就是30。

    注意点1:由于在回调函数里会操作实参的值,并且在getter里会将其读取出来,并且在方法体内this指针指向的是当前对象,所以需要将this的一个属性来储存setter方法的最终值,来方便getter调用。但是不能设置和监听属性一致,如我监听age属性,并且在方法体里设置储存实参的值为this.age。如果一致,那么就会进入死循环,因为他在监听zhangmingzhi.age的变化,如果你内部值设置为this.age = age(参数)那么就又会触发setter函数,从而进入死循环。

  • 相关阅读:
    c# 扩展方法奇思妙用
    AnkhSVN的自动加锁
    C#数组学习
    同一IP下多端口网站共享cookie的问题
    瞎子摸象销售开票(一)
    瞎子摸象年结
    配置WSS3.0搜索功能的步骤
    瞎子摸象销售开票(二)
    瞎子摸象汇兑损益
    ajax+php鼠标拖动层至任意位置并实时保存
  • 原文地址:https://www.cnblogs.com/strangerqt/p/4743639.html
Copyright © 2011-2022 走看看