我目前正在学习有关使用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问题,但除非我错过了某些内容,否则他们不会回答这个特定问题。
谢谢!
答案 0 :(得分:1)
那么JavaScript如何知道PersonContructor是构造函数,而不是大写字符串?
是因为我要退货吗?
因为您要返回PersonContructor
,所以PersonContructor
被分配给Person
。您不会返回capitalizeString
,因此不会将其分配给Person
。
如果您以后要调用new Person()
,则将知道它是构造函数,因为您使用了new
关键字。