透析Extjs的Ext.js源码(三)扩展

本文介绍了一个特殊的JavaScript构造函数Person的实现方式,通过即时执行的方法来为构造函数添加属性extend,该属性本身即是一个方法,实现了在创建新实例时即时执行并返回一个方法。

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

if(!Person.extend){//若extend属性还未存在则执行里面的代码   
Person.applay(Person,{
extend:function(){
alert("定义时执行");
return function(){
alert("hello");
}
}()// 注意这里加了一对(),表示在new一个Person对象的时候就会立即执行extend后面定义的方法,并且返回里面return的方法给extend属性,
//那么这样,extend就是一个方法类型的属性了
});
}

//因为之前!Person.extend为true,所以进行了Person.applay方法的执行,而参数中extend元素又是个定义时即时执行的属性,因此这里就先输出结果:定义时执行

Person.extend();// 输出结果:hello
Person.extend();// 输出结果:hello
//new Person();// 输出结果:定义时执行,没执行一次new Person(),都会输出一次这个结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值