对象之function

时间:2023-03-09 22:35:35
对象之function

开头啰嗦几句:程序之中,万事万物皆对象,这就是面向对象编程的核心思想,比如我们的js中的function,其实也是一个对象,是对象就可以有属性,在jq的源码中经常看到类似这样的方法:

jQuery.Event = function( src, props ) {
if ( !(this instanceof jQuery.Event) ) {
return new jQuery.Event( src, props );
} if ( src && src.type ) {
this.originalEvent = src;
this.type = src.type;
} else {
this.type = src;
}
...
};

明明是个函数,但是通过内部的赋值(this.),让Event()这个方法变成了一个普通的object对象,var e = new jQuery.Event( src, props );e已经是一个对象了,有着自己的属性

这里进来这后,先判断是否是jQuery.Event对象,不是的话,就new一个,为啥,为了this指向jQuery.Event,我们知道在js中new一个obj的话,this指向的就是这个obj