Javascript 的函数式对象(五)配置注入式继承

本文介绍了EXT框架中一种常见的实例化对象方式——配置注入。通过这种方式,可以为EXT.Window类注入不同的配置对象,从而创建出具有不同特性的实例。文中还提供了一个简单的模拟示例来解释这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在EXT中,像下面这样实例化对象的方式很常见:

 

var extWindow = new Ext.Window({ 
	title: 'EXT WINDOW', 
	modal: 'true', 
	width:800, 
	height:250,
	......
}); 

 

在创建实例的过程中,Ext.Window类的构造方法被注入一个config对象。

 

该config对象中的属性和方法的将会覆盖Ext.Window的同名属性和方法,

 

或是直接在config对象中定义全新的方法。这样创建的实例,个个都与众不同。

 

如果传入的config对象是空,这将创建一个具有默认属性和方法的实例。

 

下面的代码示例模拟了EXT中“配置注入”的实现:

 

var TreeItem = function(config){
	
	this.label = 'default tree item';
	
	this.print = function(){
		console.log('This is a '+this.label);
	};
	
	for(methodName in config){
		this[methodName] = config[methodName];
	}
}

//开始创建TreeItem的实例

var modifiedTreeItem = new TreeItem({
	
	label: 'instance of tree item',
	
	print: function(){
		console.log('This is an '+this.label);
	}
});
modifiedTreeItem.print(); // print “This is an instance of tree item”
var defaultTreeItem = new TreeItem({});
defaultTreeItem.print(); // print “This is a default tree Item”

 

EXT对象的实际创建过程比这要复杂很多。

 

这种“配置注入”式创建实例的方法,不仅能重用对象共性,而且结构简单清晰,

 

可替代大多数js应用中期望使用“继承”的场合。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值