JavaScript构造函数-JavaScript如何确定构造函数?

时间:2018-11-18 18:26:38

标签: javascript oop

我目前正在学习有关使用JavaScript进行OOP的所有知识,并且有以下代码:

var Person = (function() {
    var protectedMembers;

    function capitalizeString(str) {
        return str.charAt(0).toUpperCase() + string.slice(1);
    }

    function PersonConstructor(name, surname, protected) {
        protectedMembers = protected || {};

        protectedMembers.capitalizeString = capitalizeString;
        this.name = capitalizeString(name);
        this.surname = capitalizeString(surname);
    }

    return PersonConstructor;

}());

那么JavaScript如何知道PersonContructor是构造函数,而不是大写字符串?我的意思是,我知道我要让PersonPersonConstructor函数成为构造函数,但是JavaScript引擎或其他因素如何确定呢?只是因为我要退货吗?还是因为我在PersonConstructor中使用“ this”?还是由于这两种原因?

我确实查看了其他有关JavaScript和构造函数的StackOverflow问题,但除非我错过了某些内容,否则他们不会回答这个特定问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

  

那么JavaScript如何知道PersonContructor是构造函数,而不是大写字符串?

     

是因为我要退货吗?

因为您要返回PersonContructor,所以PersonContructor被分配给Person。您不会返回capitalizeString,因此不会将其分配给Person

如果您以后要调用new Person(),则将知道它是构造函数,因为您使用了new关键字。