区分javascript函数是构造函数还是普通函数的方法是看它们使用了哪种调用方式,无论是javascript构造函数还是javascript普通函数,它们总归是函数,它们的调用方式决定了它们是构造函数还是普通函数。
下面是一个函数的声明,它就是一个函数,但它后面的使用方式决定了它是构造函数还是普通函数:
function website(name,url){ this.webName = name; this.webUrl = url; }
构造函数
var site =new website("资源共享", "http://www.aiyuanma.org/"); site.webName; //资源共享 site.webUrl; //http://www.aiyuanma.org/
通过new操作符来调用该函数,那么这个函数就是作为构造函数来使用。也就是说任何函数都可以作为构造函数。
普通函数
website("资源共享", "http://www.aiyuanma.org/"); window.webName;//资源共享 window.webUrl; // http://www.aiyuanma.org/
这里的就是作为普通函数使用,this是指向window对象的。也就是说任何函数都可以作为普通函数。
总结:
-
它们两者的区别就是如此简单,使用new操作符调用的就是作为构造函数使用,其它调用方式的就是作为普通函数使用;
-
任何javascript函数都可以作为构造函数或普通函数使用
网友留言: