【第四胖】(3)EXT.JS文件解析--关于扩展

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(),都会输出一次这个结果   

 

你可能感兴趣的:(ext)