关于此内容,基础知识请参考我的文章通俗讲解javascript的实例对象、原型对象和构造函数以及它们之间的关系_js中的实例对象-CSDN博客
今天在某实例中,遇到了这方面的知识,记录一下。
首先,遇到了new,代码如下:
看到了new,首先应该反应出, new后面跟着的是一个 构造函数(参数) ,也就是new $_DJk(参数)这一部分,就产生了一个实例对象。接下来,实例对象["a"]的意思就是实例对象使用了一个方法a,可以推测,a方法大概率是写到了原型类中。
于是,有两个反应要紧跟着出来:
(1)必须有一个构造函数$_DJk
(2)此构造函数使用了prototype属性,得到了原型类,在原型类中添加了a方法。
对应着以上两点来寻找代码(可以通过下断点)。
(1)构造函数
(2)构造函数使用prototype添加方法
那么原型类可以怎么获取到呢?那就是 构造函数[“prototype”],也就是下面这个图了。
至此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);