一般来说,我是 Javascript 和面向对象编程的新手。我想知道我在编写 JS OOP 代码时是否遵循最佳实践。
在这里,我创建了一个名为 _name 的类,并为其赋予了一些属性以及一个对象 this.details。然后我使用原型来为类创建方法。
//define _name class (I use _ to easily recognize classes)
function _name () {
this.firstName = '';
this.lastName = '';
this.middleName = '';
this.details = {
eyeColor: '',
hairColor: ''
}
}
//begin _name methods
_name.prototype.getFullName = function() {
return this.firstName + ' ' + this.middleName + ' ' + this.lastName;
}
_name.prototype.setFirstName = function(firstName) {
if ($.trim(firstName).length && typeof firstName != 'not_defined') {
this.firstName = firstName;
} else {
alert('Please enter a valid first name.');
}
}
_name.prototype.setLastName = function(lastName) {
if ($.trim(lastName).length && typeof lastName != 'not_defined') {
this.lastName = lastName;
} else {
alert('Please enter a valid last name.');
}
}
_name.prototype.setMiddleName = function(middleName) {
if ($.trim(middleName).length && typeof middleName != 'not_defined') {
this.middleName = middleName;
} else {
alert('Please enter a valid middle name.');
}
}
_name.prototype.setHairColor = function(hairColor) {
this.details.hairColor = hairColor;
}
_name.prototype.setEyeColor = function(eyeColor) {
this.details.eyeColor = eyeColor;
}
//end _name methods
var personOne = new _name();
personOne.setFirstName('John');
personOne.setLastName('Doe');
personOne.setMiddleName('Barry');
personOne.setEyeColor('Brown');
personOne.setHairColor('Black');
document.write(personOne.getFullName());
document.write(personOne.details.eyeColor);
document.write(personOne.details.hairColor);