Javascript中定义类(class)的几种方法总结
发布时间:2018-08-17 14:03:51 所属栏目:模式 来源:站长网
导读:方法一:工厂方式--- 创建并返回特定类型的对象的 工厂函数 ( factory function ) function createCar(color,doors,mpg){ var tempCar = new Object; tempCar.color = color; tempCar.doors = doors; tempCar.mpg = mpg; tempCar.showCar = function(){ al
方法一:工厂方式--- 创建并返回特定类型的对象的 工厂函数 ( factory function ) function createCar(color,doors,mpg){ var tempCar = new Object; tempCar.color = color; tempCar.doors = doors; tempCar.mpg = mpg; tempCar.showCar = function(){ alert(this.color + " " + this.doors); } return tempCar; } 方法二:构造函数方式--- 构造函数看起来很像工厂函数 function Car(color,doors,mpg){ this.color = color; this.doors = doors; this.mpg = mpg; this.showCar = function(){ alert(this.color); }; } 方法三:原型方式--- 利用了对象的 prototype 属性,可把它看成创建新对象所依赖的原型 function Car(color,doors,mpg){ this.color = color; this.doors = doors; this.mpg = mpg; this.drivers = new Array("nomad","angel"); } Car.prototype.showCar3 = function(){ alert(this.color); }; 方法四:混合的构造函数 /原型方式--- 用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法) function Car(sColor, iDoors, iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.drivers = new Array("Mike", "Sue"); } Car.prototype.showColor = function () { alert(this.color); }; 方法五:动态原型方法--- 在构造函数内定义非函数属性,而函数属性则利用原型属性定义。唯一的区别是赋予对象方法的位置。 function Car(sColor, iDoors, iMpg) { this.color = sColor; this.doors = iDoors; this.mpg = iMpg; this.drivers = new Array("Mike", "Sue"); if (typeof Car._initialized == "undefined") { Car.prototype.showColor = function () { alert(this.color); }; Car._initialized = true; } } //该方法使用标志( _initialized )来判断是否已给原型赋予了任何方法。 利用原型prototype。 function Bar(text, url) { this.text = text; this.url = url; } Bar.prototype = { render : function() { document.write('<a href="' + this.url + '">' + this.text + '</a>'); } } (编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |