javaScript语言精粹 学习笔记(3.5对象原型)

3.5原型:

 原文中的beget意思应该可以理解为creatInstance,创建的实例对象可以自增属性,修改结果不影响原对象(即标题中的“原型”)。

<html>
<body>
<script type="text/javascript">

if (typeof Object.beget !=='function'){
  Object.beget=function(o){
    var F = function(){};
    F.prototype = o;
    return new F();
  };
}
var o={arg1:"张三",arg2:""};
var instance = Object.beget(o);


instance.arg3="汉族";
document.write('tyoeof instance: ' + typeof instance + '<br>');
document.write('instance.arg1:' + instance.arg1 + '<br>');
document.write('instance.arg2:' + instance.arg2 + '<br>');
document.write('instance.arg3:' + instance.arg3 + '<br><br>');

document.write('tyoeof o: ' + typeof o + '<br>');
document.write('o.arg1:' + o.arg1 + '<br>');
document.write('o.arg2:' + o.arg2 + '<br>');
document.write('o.arg3:' + o.arg3 + '<br><br>');

</script>

</body>
</html>
View Code

 

显示结果为:

tyoeof instance: object
instance.arg1:张三
instance.arg2:男
instance.arg3:汉族

tyoeof o: object
o.arg1:张三
o.arg2:男
o.arg3:undefined

 

posted on 2013-12-17 12:11  赵成业  阅读(153)  评论(0)    收藏  举报

导航