demo.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//构造函数调用模式的特征
//1.构造函数的首字母一般要大写
//2.一般情况下和new关键字一起使用
//3.构造函数中的this指向new关键字创建出来的对象
//4.默认的返回new创建出来的这个对象(this)
function Person(){
//return this; //默认return this。 return引用类型会覆盖return this,return值类型不会覆盖。
}
var p = new Person();
//构造函数的返回值:
//默认返回new创建出来的对象,return值类型不会覆盖return this;
//若是对象类型(引用类型),则返回这个对象,不会返回new创建出来的对象
//1.工厂模式的构造函数
function Person(name,age){
var o = {
name:name,
age:age,
sayHello:function(){
}
}
return o;
}
var p = Person("张三", 18); //不使用new关键字,(函数调用模式)
console.log(p);
//简单工厂模式的构造函数 创建出来的对象 跟该构造函数无关
//简单工厂模式的构造函数,实际的调用模式是 函数模式
//2.寄生式构造函数(用的不多)
function Person(name,age){
var o = {
name:name,
age:age,
sayHello:function(){
}
}
return o; //返回的并不是this,而是自定义的对象o。
}
var p = new Person(); // 用new关键字
</script>
</head>
<body>
</body>
</html>