У меня есть код ниже. проблема, которую я не понимаю, поэтому мне не нужно ссылаться на объект «children» через this.children, но затем получить доступ к первому или фамилии, я должен использовать this.firstname ....Javascript - Область и это
Пожалуйста, помогите я понимаю, почему.
function User(first, sur) {
var firstName;
var surName;
var age;
var children = [];
this.firstName = first;
this.surName = sur;
this.getDisplayName = function() {
return this.firstName + ' ' + this.surName;
};
this.getTotalLength = function() {
return (this.firstName.length + this.surName.length);
};
this.displayFullName = function() {
return (this.firstName + ' ' + this.surName);
};
this.changeMaidenname = function(newSurname) {
if (newSurname)
{
this.surName = newSurname;
}
};
this.addChild = function(childUser) {
children.push(childUser);
};
this.numberOfChildren = function() {
return children.length;
};
this.killChild = function(childUser) {
children.forEach(function(item,index)
{
if (item.firstName === childUser.firstName && item.surName === childUser.surName)
{
children.splice(index, 1);
}
}
)
};
};
module.exports.User = User
'firstName' и' this.firstName' являются и существующими идентификаторами, но вы не храните значение в 'firstName' (while вы сохраняете значение в 'this.firsName'). – apsillers
[Здесь] (http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html) вы можете прочитать больше о модульном шаблоне и [здесь] (http://www.sitepoint.com/mastering -javascripts-this-keyword /) об этом ключевом слове –