如果我们尝试去获取对象的某个属性值,
且该对象没有此属性名,
那么JavaScript会试着从原型对象中去获取属性值,
直到该过程最后到达终点Object.prototype。
如果找不到该属性,结果就是undefined。这个过程称为委托。

谁能更好的配好例子给我解释一下,特别是这句“这个过程称为委托”、、、、

解决方案 »

  1.   


    <script type="text/javascript">
    function Person() {
    this.name = 'csdn';
    };
    Person.prototype.age = '23';
    Object.prototype.sex = 'men';var p = new Person();
    alert(p.name); // 对象本身含有
    alert(p.age); // 对象本身没有.就去对象的原型prototype取
    alert(p.sex); // 如果本身和原型等...一直查到Object.prototype如果存在就取
    alert(p.height); // 如果一直查到Object.prototype还没有那么就返回undefined
    </script>
    委托只是个叫法.
      

  2.   

    恩 比如说Array对象var tmp = new Array();
    tmp是不具有任何的方法和属性的,但是他继承自Array,而Array.prototpye有push方法
    你就可以使用tmp.push()了
    如果一直沿着这个继承链都找不到push方法,那么他就是个undefined
    ----------------------------------------------------------------
    至于delegation翻译成委托 我觉得在这里不是很妥当。反正理解其意思就OK了
      

  3.   

    Object.prototype.en=1;
    function vv(){
    this.en="3";
    }
    vv.prototype.en="2";
    var test =new vv();
    alert(test.en);
    delete test.en;
    alert(test.en);
    delete vv.prototype.en;
    alert(test.en);
    delete Object.prototype.en;
    alert(test.en);
      

  4.   

    就是你访问某个对象如
    <input type="text" id="test" />   var name = document.getElementById("test").name;//这个表签没有这个属性现在要取,那么js会默认的分配一个undefined
       alert(name)