如果我们尝试去获取对象的某个属性值,
且该对象没有此属性名,
那么JavaScript会试着从原型对象中去获取属性值,
直到该过程最后到达终点Object.prototype。
如果找不到该属性,结果就是undefined。这个过程称为委托。
谁能更好的配好例子给我解释一下,特别是这句“这个过程称为委托”、、、、
且该对象没有此属性名,
那么JavaScript会试着从原型对象中去获取属性值,
直到该过程最后到达终点Object.prototype。
如果找不到该属性,结果就是undefined。这个过程称为委托。
谁能更好的配好例子给我解释一下,特别是这句“这个过程称为委托”、、、、
<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>
委托只是个叫法.
tmp是不具有任何的方法和属性的,但是他继承自Array,而Array.prototpye有push方法
你就可以使用tmp.push()了
如果一直沿着这个继承链都找不到push方法,那么他就是个undefined
----------------------------------------------------------------
至于delegation翻译成委托 我觉得在这里不是很妥当。反正理解其意思就OK了
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);
<input type="text" id="test" /> var name = document.getElementById("test").name;//这个表签没有这个属性现在要取,那么js会默认的分配一个undefined
alert(name)