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>
显示结果为:
tyoeof instance: object
instance.arg1:张三
instance.arg2:男
instance.arg3:汉族
tyoeof o: object
o.arg1:张三
o.arg2:男
o.arg3:undefined
浙公网安备 33010602011771号