欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS OOP包機(jī)制,類(lèi)創(chuàng)建的方法定義

 更新時(shí)間:2009年11月02日 13:17:58   作者:  
JS OOP包機(jī)制,類(lèi)創(chuàng)建的方法定義,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:

/**
* 定義包
* @param {} ns
* @return {}
*/
Xu.pkg = function(ns) {
if (!ns || !ns.length) {
return null;
}
var levels = ns.split(".");
var nsobj = Xu;
for (var i = (levels[0] == "Xu") ? 1 : 0; i < levels.length; ++i) {
nsobj[levels[i]] = nsobj[levels[i]] || {};
nsobj = nsobj[levels[i]];
}
return nsobj;
};


復(fù)制代碼 代碼如下:

// ------------------- Xu.Core.Class命名空間
Xu.pkg("Core.Class");
var SYS_DEF_CLASS_NS = 'Xu.Class.Sys' ;
var USER_DEF_CLASS_NS = 'Xu.Class.Custom' ;


/**
* 驗(yàn)證類(lèi)是否存在
* @param {String} Class
* @return {Boolean}
*/
Core.Class.isExist = function(Class){
if (Core.Util.isFunction(Class))
return true ;
return false ;
};

Core.Class.remove = function(Class){
if (Core.Class.isExist(Class))
Xu.pkg(Class.prototype.__pkg__)[Class.prototype.__class__] = null ;
};

Core.Class.hasProperty = function(Class,property){
if (Core.Class.isExist(Class))
if ( Class[property] || Class.prototype[property])
return true ;
return false ;
};

/**
* 模擬類(lèi)的定義 , 支持包機(jī)制,繼承和多態(tài)
* @param packageName {String} 包的名字
* @param className {String} 類(lèi)的名字
* @param superClass {Class} 父類(lèi)對(duì)象
* @param classImp {Object} 類(lèi)的實(shí)現(xiàn)代碼
* @param isOverride {Boolean} 是否覆蓋,當(dāng)類(lèi)定義存在時(shí),缺省不覆蓋
*
* @return {Function}
*/
Core.Class.create = function(packageName,className,superClass,classImp,isOverride){
if (Core.Util.isNull(className) || className === ""){
return null ;
}

isOverride = isOverride || false ;
try {
var $this_class = eval(packageName + "." +className);
if (Core.Class.isExist($this_class)) {
trace( "isExist: " + className + " Override:" + isOverride );
if (!isOverride){
return null ;
}
}
}
catch(e){
//如果出異常,說(shuō)明該類(lèi)沒(méi)有定義
}

if (Core.Util.isNull(packageName) || packageName === ""){
packageName = USER_DEF_CLASS_NS ;
}
$this_pkg = Xu.pkg(packageName);
//定義父類(lèi),將子類(lèi)的原型 指向父類(lèi)
if (Core.Util.isNull(superClass) || superClass === ""){
// superClass = Object ;
superClass = Xu.Class.Sys.XClass ;
}
//定義類(lèi)
$this_class = $this_pkg[className] = function(){};

// 將子類(lèi)的原型 指向父類(lèi),以此獲取屬性繼承
$this_class.prototype = new superClass();
Object.extend($this_class.prototype ,
{
'__pkg__': packageName ,
'__superclass__': $this_class.prototype['__class__'] || 'Object',
'__class__': className ,
'toString': function(){
return "[class: " + this.__pkg__ + "." + this.__class__ + "]" ;
}
}
);
if (Core.Util.isObject(classImp)){
$this_class.prototype = Object.extend(
$this_class.prototype,classImp);
}
return $this_class ;
} ;
//定義基類(lèi), 用于框架中所創(chuàng)建的類(lèi)的基類(lèi).
Core.Class.create(SYS_DEF_CLASS_NS,'XClass',Object,{
'version': 'V0.1'
});

// Xu.Core.Class 測(cè)試區(qū)域
//測(cè)試 類(lèi)覆蓋定義 ;
//Core.Class.create(SYS_DEF_CLASS_NS,'XClass',Object,{
// 'version': 'V0.5'
//},true);
//
//// 測(cè)試 類(lèi)屬性檢查方法 ;
//Xu.Class.Sys.XClass.ve = '2' ;
//trace(Core.Class.hasProperty(Xu.Class.Sys.XClass,'ve'));
//
////Core.Class.remove(Xu.Class.Sys.XClass);
//
//var x_class = new Xu.Class.Sys.XClass();
//trace(x_class.toString() + x_class.version );
//traceobj('XClass',Xu.Class.Sys.XClass.prototype);
////
//var XClass_ = Core.Class.create(null,'XClass_',null,{h:'hello'});
////
//var x_class_ = new XClass_();
//trace(x_class_.toString() + x_class_.version );
//traceobj('XClass_',XClass_.prototype);
////
//var X_ = Core.Class.create(null,'X_',XClass_,null);
////
//var x_ = new X_();
//trace(x_.toString() + x_.version );
//traceobj('X_',X_.prototype);

測(cè)試使用的,呵呵 /...
作者:vb2005xu

相關(guān)文章

  • 原生JS實(shí)現(xiàn)彈幕效果的簡(jiǎn)單操作指南

    原生JS實(shí)現(xiàn)彈幕效果的簡(jiǎn)單操作指南

    這篇文章主要給大家介紹了關(guān)于原生JS實(shí)現(xiàn)彈幕效果的簡(jiǎn)單操作指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • TypeScript常見(jiàn)類(lèi)型及應(yīng)用示例講解

    TypeScript常見(jiàn)類(lèi)型及應(yīng)用示例講解

    這篇文章主要介紹了TypeScript常見(jiàn)類(lèi)型及應(yīng)用示例講解,本章我們會(huì)講解?JavaScript?中最常見(jiàn)的一些類(lèi)型,以及對(duì)應(yīng)的描述方式,有需要的朋友可以借鑒參考下
    2022-02-02
  • 深入淺出JavaScript前端中的設(shè)計(jì)模式

    深入淺出JavaScript前端中的設(shè)計(jì)模式

    這篇文章主要介紹了JavaScript前端中的設(shè)計(jì)模式,設(shè)計(jì)模式是一套被反復(fù)使用,多數(shù)人知曉的,經(jīng)過(guò)分類(lèi)編目的,代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • js實(shí)現(xiàn)圖片粘貼上傳到服務(wù)器并展示的實(shí)例

    js實(shí)現(xiàn)圖片粘貼上傳到服務(wù)器并展示的實(shí)例

    下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)圖片粘貼上傳到服務(wù)器并展示的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • JavaScript設(shè)計(jì)模式之享元模式實(shí)例詳解

    JavaScript設(shè)計(jì)模式之享元模式實(shí)例詳解

    這篇文章主要介紹了JavaScript設(shè)計(jì)模式之享元模式,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript享元模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-01-01
  • javascript代碼調(diào)試之console.log 用法圖文詳解

    javascript代碼調(diào)試之console.log 用法圖文詳解

    對(duì)于開(kāi)始學(xué)js的朋友可能不知道為什么用console.log,頁(yè)面中也看不到信息,對(duì)于這個(gè)console.log腳本之家小編特整理與介紹一下,方便需要的朋友
    2016-09-09
  • javascript+xml技術(shù)實(shí)現(xiàn)分頁(yè)瀏覽

    javascript+xml技術(shù)實(shí)現(xiàn)分頁(yè)瀏覽

    基于web的技術(shù)中,分頁(yè)是一個(gè)老的不能再老的,但大家津津樂(lè)道的問(wèn)題,隨著xml技術(shù)的日漸應(yīng)用,把xml應(yīng)用到分頁(yè)當(dāng)中,也是一種可能,當(dāng)然網(wǎng)上的教程很多,當(dāng)我都是看得稀里糊涂,索性自己寫(xiě)一個(gè),與大家分享、指正。
    2008-07-07
  • 關(guān)于uniapp的request封裝保姆級(jí)教程

    關(guān)于uniapp的request封裝保姆級(jí)教程

    這篇文章主要給大家介紹了關(guān)于uniapp的request封裝保姆級(jí)教程,request是基于uni-app框架封裝的一個(gè)網(wǎng)絡(luò)請(qǐng)求庫(kù),可以用于發(fā)送http請(qǐng)求和處理響應(yīng)數(shù)據(jù),需要的朋友可以參考下
    2023-07-07
  • JavaScript實(shí)現(xiàn)經(jīng)緯度轉(zhuǎn)換常用方法總結(jié)

    JavaScript實(shí)現(xiàn)經(jīng)緯度轉(zhuǎn)換常用方法總結(jié)

    WGS84坐標(biāo)系、GCJ02坐標(biāo)系、BD09坐標(biāo)系和Web 墨卡托投影坐標(biāo)系是我們常見(jiàn)的四個(gè)坐標(biāo)系。這篇文章為大家整理了這四個(gè)坐標(biāo)系之間相互轉(zhuǎn)換的方法,需要的可以參考一下
    2023-02-02
  • 解決Babylon.js中AudioContext was not allowed to start異常問(wèn)題

    解決Babylon.js中AudioContext was not allowed&nbs

    這篇文章主要介紹了解決Babylon.js中AudioContext was not allowed to start異常問(wèn)題方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論