对象之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

原文地址:https://www.cnblogs.com/aishangyizhihu/p/4274636.html