一、普通函数示例
// 普通函数在声明函数位置前和位置后都可以对函数进行调用
console.log(person(3,3))
function person(a,b){
return a+b;
}
console.log(person(1,3))
二、函数表达式示例
/*
函数表达式只能在声明函数位置后进行调用;如果在定义的函数表达式之前进行调用,
则会报调用的不是函数的错误。错误示例如上图:
*/
// console.log(add(3, 5))//在此调用会抛出一个错误
var add = function (a, b) {
return a + b;
}
console.log(add(3, 5))
三、工厂模式示例
function person(a, b) {
var obj = new Object();
obj.a = a;
obj.b = b;
obj.todoa = function () {
return obj.a;
};
obj.todob = function () {
return obj.b;
};
return obj;
}
var a1 = person('999', 8888)
console.log(a1)
console.log(person('987', 654))
四、构造函数示例
function Person(a, b) {
var obj = new Object();
obj.a = a;
obj.b = b;
obj.a1= function () {
return obj.a;
};
obj.b1 = function () {
return obj.b;
};
return obj;
}
var a1 = Person('999',8888)
console.log(a1)
console.log(Person('987',654))
总结:
1.this指向:构造函数的this指向创建的对象实例;普通函数指向函数的调用者
2.调用方式:构造函数通过new进行调用;普通函数则不需要
3.命名方式:构造函数首字母需要大写;普通函数不需要