`
yahaitt
  • 浏览: 756079 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

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

EXT 
阅读更多
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(),都会输出一次这个结果
分享到:
评论
1 楼 slmdyk 2008-08-13  
看明白了,实际上就是一个定义时就执行的拥有方法例行的属性!
说上去就点拗口!

不过有这几个特点!
1、属性是的值是一个方法
2、定义时执行这个方法
3、函数的返回值是个方法

相关推荐

Global site tag (gtag.js) - Google Analytics