Javascript 普通函数和构造函数的区别
普通函数和构造函数的区别
在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。
在函数调用的时候:
functionfn(){}
构造函数:1.newfn()
2.构造函数内部会创建一个新的对象,即f的实例
3.函数内部的this指向新创建的f的实例
4.默认的返回值是f的实例
普通函数:1.fn()
2.在调用函数的内部不会创建新的对象
3.函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)
4.返回值由return语句决定
构造函数的返回值:
有一个默认的返回值,新创建的对象(实例);
当手动添加返回值后(return语句):
1.返回值是基本数据类型-->真正的返回值还是那个新创建的对象(实例)
2.返回值是复杂数据类型(对象)-->真正的返回值是这个对象
看一个常见的面试题
<script> functionfoo(){ varf2=newfoo2(); console.log(f2);//{a:3} console.log(this);//window returntrue; } functionfoo2(){ console.log(this);//foo2类型的对象不是foo2函数 //this.age=30; return{a:3}; } varf1=foo(); console.log(f1);//true </script>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!