构造对象

2019-09-26  本文已影响0人  kzc爱吃梨

new


new运算符接受一个函数F及其参数:new F(arguements...)。这一过程分成三步:

  1. 创建类的实例。这不是是把一个空对象的proto属性设置为F.prototype。
  2. 初始化实例。函数F被传入参数并被调用,关键字this指向该实例。
  3. 返回实例

根据这几个特性,我们可以改造一下创建对象的方式

function Person(name) {
    this.name = name
    this.sayName = function() {
        console.log(this.name)
    }
}
var p = new Person('hunger')

构造函数


prototype

prototype
通过图示我们可以看出一些端倪,实例可以通过__prop__访问到其类型的prototype属性,这就意味着类的prototype对象可以作为一个公共容器,供所有实例访问。

抽象重复


看下代码

function Person(nick, age){
    this.nick = nick;
    this.age = age;
}
Person.prototype.sayName = function(){
    console.log(this.nick);
}

var p1 = new Person();
p1.sayName();

这时候我们对应的关系是这样的


image.png
上一篇 下一篇

猜你喜欢

热点阅读