JS中构造函数有普通函数有什么区别?

1.一般规则

  构造函数都应该以 一个大写字母开头,eg:

  function Person(){...}

  而非构造函数则应该以一个小写字母开头,eg:

  function person(){...}

2.调用方式

  •   任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数 ;// 构造函数 this 指向 函数内部
  •   任何函数,如果不通过 new 操作符来调用,那它跟普通函数也没有什么两样。// 普通函数 this 指向 window

  demo:

  //创建函数  

function Person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
      alert(this.name);
    }
  }

  //当做构造函数使用

  var person = new Person('Nicholas',29,'Software Engineer');//this-->person

  person.sayName();//'Nicholas'

  //当做普通函数调用

  Person('Greg',27,''Doctor);//this-->window

  window.sayName();//'Greg'

猜你喜欢

转载自blog.csdn.net/weixin_41796631/article/details/89495805