Dieser Artikel stellt hauptsächlich die Art und Weise vor, wie die tangram.js-Bibliothek JS-Klassen implementiert, und analysiert die Erstellung, Vererbung und andere verwandte Betriebstechniken der tangram.js-Bibliotheksimplementierungsklasse in Form von Beispielen
Dieser Artikel Das Beispiel beschreibt, wie die tangram.js-Bibliothek js-Klassen implementiert. Teilen Sie es als Referenz mit allen:
Der vorherige Artikel //www.jb51.net/article/25781.htm gab eine detailliertere Einführung in die tangram.js-Bibliothek analysiert Tangram anhand von Beispielen, wie die .js-Bibliothek js-Klassen implementiert. Der Code lautet wie folgt:
/* * 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; /** * 创建一个类,包括创造类的构造器、继承基类Class * @name baidu.lang.createClass * @function * @grammar baidu.lang.createClass(constructor[, options]) * @param {Function} constructor 类的构造器函数 * @param {Object} [options] * @config {string} [type] 类名 * @config {Function} [superClass] 父类,默认为baidu.lang.Class * @version 1.2 * @remark * 使用createClass能方便的创建一个带有继承关系的类。同时会为返回的类对象添加extend方法,使用obj.extend({});可以方便的扩展原型链上的方法和属性 * @see baidu.lang.Class,baidu.lang.inherits * * @returns {Object} 一个类对象 */ baidu.lang.createClass = /**@function*/function(constructor, options) { options = options || {}; var superClass = options.superClass || baidu.lang.Class; // 创建新类的真构造器函数 var fn = function(){ var me = this; // 20101030 某类在添加该属性控制时,guid将不在全局instances里控制 options.decontrolled && (me.__decontrolled = true); // 继承父类的构造器 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] 放置全局配置,这个全局配置可以直接写到类里面 fn.options = options.options || {}; var C = function(){}, cp = constructor.prototype; C.prototype = superClass.prototype; // 继承父类的原型(prototype)链 var fp = fn.prototype = new C(); // 继承传参进来的构造器的 prototype 不会丢 for (var i in cp) fp[i] = cp[i]; // 20111122 原className参数改名为type var type = options.className || options.type; typeof type == "string" && (fp.__type = type); // 修正这种继承方式带来的 constructor 混乱的问题 fp.constructor = cp.constructor; // 给类扩展出一个静态方法,以代替 baidu.object.extend() fn.extend = function(json){ for (var i in json) { fn.prototype[i] = json[i]; } return fn; // 这个静态方法也返回类对象本身 }; return fn; };
Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Probleme mit domänenübergreifenden Ressourcenfehlern von React Native
Installieren der neuesten Version von npm in nodejs (ausführliches Tutorial)
So implementieren Sie die Entprellung der Funktion in js (ausführliches Tutorial)
So markieren Sie die Datensatz-Scroll-Position im Vue-Scroller
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die js-Klasse mithilfe der tangram.js-Bibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!