JavaScript類繼承及實(shí)例化的方法
本文實(shí)例講述了JavaScript類繼承及實(shí)例化的方法。分享給大家供大家參考。具體如下:
(function(){
var Class = {
//擴(kuò)展類
create: function(aBaseClass, aClassDefine){
var $class = function(){
for(var member in aClassDefine){
this[member] = aClassDefine[member];
}
if('undefined'===typeof aClassDefine.initialize){
this.initialize = function(){};
}
};
if('function' ===typeof aBaseClass){
$class.prototype = new aBaseClass();
}else if('object' ===typeof aBaseClass){
$class.prototype = aBaseClass;
}
return $class;
},
//實(shí)例化類
new: function(jclass,args){
var jclass = new jclass();
if(jclass.initialize){
jclass.initialize.apply(jclass, args);
}
return jclass;
}
};
//export
window.Class = Class;
})();
示例:
//基類對(duì)象或函數(shù)
var obj = {
name: 'BaseName',
init: function(){
//...
},
//...
};
var fun = function(){
this.name = '';
var init = function(){
//.. .
};
var getName = function(){
return this.name;
},
var setName = function(name){
this.name = name;
return this;//鏈?zhǔn)讲僮髦С?
},
//...
};
//從Object繼承
var class_frome_obj = Class.create(obj,{
initialize: function(){
//構(gòu)造函數(shù)
},
getName: function(){
return this.name;
},
setName: function(name){
this.name = name;
return this;//鏈?zhǔn)讲僮髦С?
},
//...
});
//從Function繼承
var class_frome_fun = Class.create(fun,{
initialize: function(){
//構(gòu)造函數(shù)
},
//...
});
//從空對(duì)生成基類
var class_frome_base = Class.create({},{
initialize: function(){
//構(gòu)造函數(shù)
},
//...
});
//實(shí)例化
var get_class_frome_obj = Class.new(class_frome_obj,[arg1,arg2,...]);
var get_class_frome_fun = Class.new(class_frome_fun,[arg1,arg2,...]);
var name1 = get_class_frome_obj.getName();
//console.log(name1);//BaseName
var name2 = get_class_frome_obj.setName('NewName').getName();
//console.log(name2);//NewName
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
- JavaScript知識(shí):構(gòu)造函數(shù)也是函數(shù)
- JS Object構(gòu)造函數(shù)之Object.freeze
- JavaScript構(gòu)造函數(shù)原理及實(shí)現(xiàn)流程解析
- javascript中使用new與不使用實(shí)例化對(duì)象的區(qū)別
- 淺談javascript構(gòu)造函數(shù)與實(shí)例化對(duì)象
- 詳解JavaScript中的原型和原型鏈
- 詳解JavaScript原型對(duì)象的this指向問(wèn)題
- JS構(gòu)造函數(shù)和實(shí)例化的關(guān)系及原型引入
相關(guān)文章
cypress e2e測(cè)試編寫注意點(diǎn)總結(jié)分析
這篇文章主要為大家介紹了cypress e2e測(cè)試編寫注意點(diǎn)總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Express結(jié)合Webpack的全棧自動(dòng)刷新
現(xiàn)在,webpack可以說(shuō)是最流行的模塊加載器一方面,它為前端靜態(tài)資源的組織和管理提供了相對(duì)較完善的解決方案,另一方面,它也很大程度上改變了前端開(kāi)發(fā)的工作流程。下面小編來(lái)和大家一起學(xué)習(xí)2019-05-05
selenium+java中用js來(lái)完成日期的修改
這篇文章主要介紹了selenium+java中用js來(lái)完成日期的修改,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
如何使用TS對(duì)axios的進(jìn)行簡(jiǎn)單封裝
在vue項(xiàng)目中和后臺(tái)交互獲取數(shù)據(jù)這塊,我們通常使用的是axios庫(kù),這篇文章主要給大家介紹了關(guān)于如何使用TS對(duì)axios的進(jìn)行簡(jiǎn)單封裝的相關(guān)資料,需要的朋友可以參考下2022-10-10
淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
JavaScript實(shí)現(xiàn)五種不同煙花特效
這篇文章主要給大家?guī)?lái)五個(gè)好看的基于 HTML+CSS+JS 的煙花特效,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下2022-01-01
微信小程序的宿主環(huán)境實(shí)現(xiàn)代碼
這篇文章主要介紹了微信小程序的宿主環(huán)境,包括scroll-view 組件的基本使用,text 組件的基本使用及rich-text 組件的基本使用,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
火狐和ie下獲取javascript 獲取event的方法(推薦)
下面小編就為大家?guī)?lái)一篇火狐和ie下獲取javascript 獲取event的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11

