JavaScript面向对象编程 |
//类的定义 //方法一:类的一般定义方法 function player1(_name) { this.name = _name; this.say = function() {alert(this.name);}; } var p1 = new player1(llinzzi1); p1.say(); //方法二:prototype定义方法 var player2 = function() {} player2.prototype = { name:, say:function(){ alert(this.name); } } var p2 = new player2(); p2.name = llinzzi2; p2.say(); //方法三:上面的方法结构美观,便捷,但构建函数不能带参数,修改方法 var player3 = function() { this.init.apply(this, arguments); } player3.prototype = { init:function(_name){ this.name = _name; }, say:function(){ alert(this.name); } } var p3 = new player3(llinzzi3); p3.say(); //类的继承 //方法一 var player4 = function(){ this.init.apply(this, arguments); } player4.prototype = new player3; player4.prototype.shout = function(){ alert(this.name.toUpperCase()); } var p4 = new player4(llinzzi4); p4.shout(); //方法二 上面的方法不能采用{}的方法,修改方法 Object.extend = function(destination, source) { for (var property in source) destination[property] = source[property]; return destination; }; var player5 = function(){ this.init.apply(this, arguments); } Object.extend(Object.extend(player5.prototype,player3.prototype),{ shout:function(){ alert(this.name.toUpperCase()); } }); var p5 = new player5(llinzzi5); p5.shout(); //再从prototype.js抄一端浏览器判断代码 Browser = { IE: !!(window.attachEvent && !window.opera), Opera: !!window.opera, WebKit: navigator.userAgent.indexOf(AppleWebKit/) > -1, Gecko: navigator.userAgent.indexOf(Gecko) > -1 && navigator.userAgent.indexOf(KHTML) == -1, MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) } alert(Browser.MobileSafari); |