看了w3school的关于定于对象这个部分的内容。感觉写的很好。
自己写些东西做下小结:
<script> <!-- //工厂方式 var playerMsg = function(){ alert("Name:"+this.name+" Nation:"+this.nation+" Club:"+this.club); } var playerFactory = function(name,nation,club){ var player = new Object(); player.name = name; player.nation = nation; player.club = club; player.playerMsg = playerMsg; return player; } var player1 = playerFactory("Kuyt","Netherlands","Liverpool"); player1.playerMsg(); //构造函数方式 var Player = function(name,nation,club){ this.name = name; this.nation = nation; this.club = club; this.playerMsg = playerMsg; } var player2 = new Player("Suarez","Uruguay","Liverpool"); player2.playerMsg(); //原型方式 var ProPlayer = function(){}; ProPlayer.prototype.name = "Lucas"; ProPlayer.prototype.nation = "Brazil"; ProPlayer.prototype.club = "Liverpool"; ProPlayer.prototype.playerMsg = playerMsg; var player3 = new ProPlayer(); player3.playerMsg(); //构造方式+原型方式 var PlayerConstructor = function(name,nation,club){ this.name = name; this.nation = nation; this.club = club; } PlayerConstructor.prototype.playerMsg = playerMsg; var player4 = new PlayerConstructor("Adam","Scotland","Liverpool"); player4.playerMsg(); //动态原型方式 var PlayerDynamic = function(name,nation,club){ this.name = name; this.nation = nation; this.club = club; if(typeof PlayerDynamic_initialized == "undefined"){ PlayerDynamic.prototype.playerMsg = playerMsg; PlayerDynamic._initialized = true; } } var player5 = new PlayerDynamic("Gerrard","England","Liverpool"); player5.playerMsg(); --> </script>