tangram.js庫(kù)實(shí)現(xiàn)js類的方式實(shí)例分析
本文實(shí)例講述了tangram.js庫(kù)實(shí)現(xiàn)js類的方式。分享給大家供大家參考,具體如下:
前面一篇http://www.dhdzp.com/article/25781.htm對(duì)tangram.js庫(kù)做了較為詳細(xì)的介紹,這里結(jié)合實(shí)例分析一下tangram.js庫(kù)實(shí)現(xiàn)js類的方式。代碼如下:
/*
* Tangram
* Copyright 2010 Baidu Inc. All rights reserved.
*
* @author: meizz
* @namespace: baidu.lang.createClass
* @version: 1.6.0
*/
///import baidu.lang;
///import baidu.lang.Class;
///import baidu.lang.Event;
/**
* 創(chuàng)建一個(gè)類,包括創(chuàng)造類的構(gòu)造器、繼承基類Class
* @name baidu.lang.createClass
* @function
* @grammar baidu.lang.createClass(constructor[, options])
* @param {Function} constructor 類的構(gòu)造器函數(shù)
* @param {Object} [options]
* @config {string} [type] 類名
* @config {Function} [superClass] 父類,默認(rèn)為baidu.lang.Class
* @version 1.2
* @remark
*
使用createClass能方便的創(chuàng)建一個(gè)帶有繼承關(guān)系的類。同時(shí)會(huì)為返回的類對(duì)象添加extend方法,使用obj.extend({});可以方便的擴(kuò)展原型鏈上的方法和屬性
* @see baidu.lang.Class,baidu.lang.inherits
*
* @returns {Object} 一個(gè)類對(duì)象
*/
baidu.lang.createClass = /**@function*/function(constructor, options) {
options = options || {};
var superClass = options.superClass || baidu.lang.Class;
// 創(chuàng)建新類的真構(gòu)造器函數(shù)
var fn = function(){
var me = this;
// 20101030 某類在添加該屬性控制時(shí),guid將不在全局instances里控制
options.decontrolled && (me.__decontrolled = true);
// 繼承父類的構(gòu)造器
superClass.apply(me, arguments);
// 全局配置
for (i in fn.options) me[i] = fn.options[i];
constructor.apply(me, arguments);
for (var i=0, reg=fn["\x06r"]; reg && i<reg.length; i++) {
reg[i].apply(me, arguments);
}
};
// [TODO delete 2013] 放置全局配置,這個(gè)全局配置可以直接寫到類里面
fn.options = options.options || {};
var C = function(){},
cp = constructor.prototype;
C.prototype = superClass.prototype;
// 繼承父類的原型(prototype)鏈
var fp = fn.prototype = new C();
// 繼承傳參進(jìn)來(lái)的構(gòu)造器的 prototype 不會(huì)丟
for (var i in cp) fp[i] = cp[i];
// 20111122 原className參數(shù)改名為type
var type = options.className || options.type;
typeof type == "string" && (fp.__type = type);
// 修正這種繼承方式帶來(lái)的 constructor 混亂的問(wèn)題
fp.constructor = cp.constructor;
// 給類擴(kuò)展出一個(gè)靜態(tài)方法,以代替 baidu.object.extend()
fn.extend = function(json){
for (var i in json) {
fn.prototype[i] = json[i];
}
return fn; // 這個(gè)靜態(tài)方法也返回類對(duì)象本身
};
return fn;
};
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 圍觀tangram js庫(kù)
- tangram框架響應(yīng)式加載圖片方法
- js類式繼承與原型式繼承詳解
- js類式繼承的具體實(shí)現(xiàn)方法
- js中繼承的幾種用法總結(jié)(apply,call,prototype)
- JavaScript是如何實(shí)現(xiàn)繼承的(六種方式)
- 深入了解javascript中的prototype與繼承
- Javascript基于對(duì)象三大特性(封裝性、繼承性、多態(tài)性)
- javascript的函數(shù)、創(chuàng)建對(duì)象、封裝、屬性和方法、繼承
- 深入理解JavaScript是如何實(shí)現(xiàn)繼承的
- JavaScript繼承基礎(chǔ)講解(原型鏈、借用構(gòu)造函數(shù)、混合模式、原型式繼承、寄生式繼承、寄生組合式繼承)
相關(guān)文章
js 毫秒轉(zhuǎn)天時(shí)分秒的實(shí)例
下面小編就為大家分享一篇js 毫秒轉(zhuǎn)天時(shí)分秒的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
用Javascript檢查Adobe PDF插件是否安裝的實(shí)現(xiàn)代碼
用Javascript檢查Adobe PDF插件是否安裝的代碼2009-12-12
JavaScript判斷瀏覽器對(duì)CSS3屬性是否支持的多種方法
其實(shí)在使用css3的一些屬性時(shí),為了兼顧低端瀏覽器對(duì)CSS3的不友好性,往往需要知道某些瀏覽器是否支持要使用的CSS3屬性,以此來(lái)做向下適配。比如常見的CSS3動(dòng)畫就很有必要檢測(cè)瀏覽器是否支持。下面本文就分享了幾種方法,有需要的朋友們可以參考借鑒。2016-11-11
TypeScript實(shí)現(xiàn)字符串轉(zhuǎn)樹結(jié)構(gòu)的方法詳解
有一個(gè)多行字符串,每行開頭會(huì)用空格來(lái)表示它的層級(jí)關(guān)系,每間隔一層它的空格總數(shù)為2,如何將它轉(zhuǎn)為json格式的樹型數(shù)據(jù)?本文就跟大家分享下這個(gè)算法2022-09-09
JavaScript注冊(cè)時(shí)密碼強(qiáng)度校驗(yàn)代碼
這篇文章主要為大家詳細(xì)介紹了JavaScript注冊(cè)時(shí)密碼強(qiáng)度校驗(yàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
JavaScript日期和時(shí)間的格式化及其它常用處理方法
這篇文章主要給大家介紹了關(guān)于JavaScript日期和時(shí)間的格式化及其它常用處理方法,JavaScript中可以使用Date對(duì)象來(lái)表示日期和時(shí)間,如果需要格式化日期和時(shí)間,可以使用Date對(duì)象的幾個(gè)方法和一些字符串操作方法來(lái)實(shí)現(xiàn),需要的朋友可以參考下2023-09-09
Qt利用布局widget和ScrollArea實(shí)現(xiàn)抽屜效果(實(shí)例代碼)
這篇文章主要介紹了Qt利用布局,widget和ScrollArea實(shí)現(xiàn)抽屜效果,本文通過(guò)實(shí)例代碼圖文展示給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07

