最直观的理解javascript构造函数和普通函数的区别

区分javascript函数是构造函数还是普通函数的方法是看它们使用了哪种调用方式,无论是javascript构造函数还是javascript普通函数,它们总归是函数,它们的调用方式决定了它们是构造函数还是普通函数。

下面是一个函数的声明,它就是一个函数,但它后面的使用方式决定了它是构造函数还是普通函数:

function website(name,url){
  this.webName = name;
  this.webUrl = url;
}

构造函数

var site =new website("资源共享", "http://www.neirong.org/");
site.webName; //资源共享
site.webUrl; //http://www.neirong.org/

通过new操作符来调用该函数,那么这个函数就是作为构造函数来使用。也就是说任何函数都可以作为构造函数。

普通函数

website("资源共享", "http://www.neirong.org/");
window.webName;//资源共享
window.webUrl; // http://www.neirong.org/

这里的就是作为普通函数使用,this是指向window对象的。也就是说任何函数都可以作为普通函数。

总结:

  • 它们两者的区别就是如此简单,使用new操作符调用的就是作为构造函数使用,其它调用方式的就是作为普通函数使用;
  • 任何javascript函数都可以作为构造函数或普通函数使用。

原文地址:https://www.softwhy.com/article-2859-1.html