|
復(fù)制代碼 代碼如下:
/**
* $define 寫(xiě)類(lèi)工具函數(shù)之二
* @param {Object} constructor
* @param {Object} prototype
*/
function $define(constructor,prototype) {
var c = constructor || function(){};
var p = prototype || {};
return function() {
for(var atr in p)
arguments.callee.prototype[atr] = p[atr];
c.apply(this,arguments);
}
}
與第四種方式類(lèi)似,仍然用構(gòu)造函數(shù),原型對(duì)象,定義兩個(gè)類(lèi)。
復(fù)制代碼 代碼如下:
//構(gòu)造函數(shù)
function Person(name) {
this.name = name;
}
//原型對(duì)象
var proto = {
getName : function(){return this.name},
setName : function(name){this.name = name;}
}
//定義兩個(gè)類(lèi)
var Man = $define(Person,proto);
var Woman = $define(Person,proto);
console.log(Man == Woman);//false,同一個(gè)構(gòu)造函數(shù)(Person)定義不同的類(lèi)
JavaScript技術(shù):javascript 寫(xiě)類(lèi)方式之五,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。