关于一个js实例中的new,构造函数,原型等内容的研究分析

关于此内容,基础知识请参考我的文章通俗讲解javascript的实例对象、原型对象和构造函数以及它们之间的关系_js中的实例对象-CSDN博客

今天在某实例中,遇到了这方面的知识,记录一下。

首先,遇到了new,代码如下:

看到了new,首先应该反应出, new后面跟着的是一个 构造函数(参数) ,也就是new $_DJk(参数)这一部分,就产生了一个实例对象。接下来,实例对象["a"]的意思就是实例对象使用了一个方法a,可以推测,a方法大概率是写到了原型类中。

于是,有两个反应要紧跟着出来:

(1)必须有一个构造函数$_DJk

(2)此构造函数使用了prototype属性,得到了原型类,在原型类中添加了a方法。

对应着以上两点来寻找代码(可以通过下断点)。

(1)构造函数

(2)构造函数使用prototype添加方法

那么原型类可以怎么获取到呢?那就是 构造函数[“prototype”],也就是下面这个图了。

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== 

至此OK。

如果使用简单的代码描述,那就是如下,只不过推导过程是反向的

//Person是构造函数
function Person(name,age)
{
    this.name=name;
    this.age=age;
}

//在原型类上添加函数
Person.prototype={
    "eat":function(){
        console.log(this.name+"吃东西");
    },
    "drink":function(){
        console.log(this.name+"喝饮料");
    }
}

//创建实例类并使用函数
new Person("张三",18)['eat'](this.name);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值