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