1.与向已有对象添加新方法不同,您无法向构造器中添加新的方法。除非您把新的方法方法写在构造器中
function Person(firstName,lastName,age,eyeColor) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.eyeColor = eyeColor;
this.changeName = function (name) {
this.lastName = name;
}
}
// 创建 Person 对象
var myFriend = new Person("Bill","Gates",62,"green");
// 修改姓氏
myFriend.changeName("Jobs");
// 显示姓氏
document.getElementById("demo").innerHTML =
"My friend's last name is " + myFriend.lastName;
效果图
My friend's last name is Jobs
除了写在构造器函数中,还有一种办法
person.prototype.nationality="English"
2.向已有的对象添加新的属性不同。您无法向构造器中添加新的方法。除非添加到构造器函数中
// Person 对象的构造器函数
function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
this.nationality = "English";
}
// 创建两个 Person 对象
var myFriend = new Person("Bill", "Gates", 62, "blue");
var myBrother = new Person("Steve", "Jobs", 56, "green");
// 显示国籍
document.getElementById("demo").innerHTML =
"My friend is " + myFriend.nationality + ". My brother is " + myBrother.nationality;
结果
My friend is English. My brother is English
除了写在构造器函数中,还有一种办法
person.prototype.name=function(){
return this.firstName+" "+this.lastName
}