原型&原型链

创建对象

我们可以通过new的方式创建一个对象

var obj = new Object();

也可以通过对象字面量的形式创建一个简单的对象

var obj = {}

工厂模式

工厂模式就是我们提供一个模子,然后通过这个模子复制我们需要的对象。

var createPerson = function(name,age) {
// 声明一个中间对象,该对象为工厂模式的模子
var o = new Object();
//依次添加我们需要的属性与方法
o.name = name;
o.age = age;
return o;
}

//创建两个实例
var perTom = createPerson('Tom',20)
var perJake = createPerson('jake',22)

构造函数

在JavaScript中new关键字可以让一个函数变得与众不同。

function demo(){
 console.log(this)
 }
 demo(); //window
 new demo() //demo

使用new之后,函数内部发生了一些变化,让this指向改变。那么new关键字到底做了什么?

使用new来调用函数,或者说发生构造函数调用时,会自动执行下面的操作。
1.创建(或者说构造)一个全新的对象。
2.这个新对象会被执行[[Prototype]]连接。
3.这个新对象会绑定到函数调用的this。
4.如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象。


文章作者: Dovis
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Dovis !
  目录