使用Prototype函数构造函数添加新函数

时间:2016-12-29 03:18:54

标签: javascript

我想检查一下我的想法是否正确?

代码:

function Person(firstname, lastname) {
            this.firstname = firstname;
            this.lastname =  lastname;
        }

        Person.prototype.getFullName = function () {
            return this.firstname + ' ' + this.lastname;
        }

        var john = new Person('Melo','Tang');

我调用下面图片中的代码“函数构造函数”。

function Person(firstname, lastname) {
                this.firstname = firstname;
                this.lastname =  lastname;
            }

程序运行到此行时

var john = new Person('Melo','Tang');

JS将使用原型链在“函数构造函数”对象中添加getFullName函数,并且新建一个空对象,如下图所示,对吗? enter image description here

1 个答案:

答案 0 :(得分:2)

我真的不明白你的图表或箭头或它们的颜色应该代表什么。

  

程序运行到此行时

     

var john = new Person('Melo','Tang');

这里发生的事情恰恰是通过Person构造函数构造了一个新对象,其中Person.prototype为其原型。除了用作新对象的原型之外,Person.prototype不会被检查或咨询,此时也不会对其进行任何处理。只有在查找属性和方法时才会查询原型,例如在调用john.getFullName()时。

为清楚起见,我会避免使用术语“函数构造函数对象”。只需将其称为“构造函数(函数)”。