对象的prototype属性是什么?有什么作用?
1个回答
展开全部
对象的prototype属性其实也是一个对象,它方便我们为当前对象添加属性和方法。
当然,不使用prototype也能为对象添加属性和方法,但是不用prototype会显得不是很友好,为什么这么说呢?
我以为对象添加方法为例,不用protoype属性添加方法是这样的:
var student1 = { name: “Jack”, socre: 88};
var student2 = { name: “Rose”, socre: 96};
function studentDetails() {
//代码
}
//为student1和student2添加方法
student1.logDetails = studentDetails;
student2.logDetails = studentDetails;
即使student1和student2的结构一样,但还是要为他们分别添加studentDetails方法。
而使用prototype就不用,它的代码是这样的。
function Student(n, s) {
this.name = n;
this.score = s;
}
//使用prototype添加方法。
Student.prototype.logDetails = function studentDetails() {
//代码
}
//下面三个对象都会有logDetails方法
Student student1;
Student student2;
Student student3;
上述代码是在秒秒学课程代码的基础上改进的,有空你可以去教程网站秒秒学看下js的课程。
当然,不使用prototype也能为对象添加属性和方法,但是不用prototype会显得不是很友好,为什么这么说呢?
我以为对象添加方法为例,不用protoype属性添加方法是这样的:
var student1 = { name: “Jack”, socre: 88};
var student2 = { name: “Rose”, socre: 96};
function studentDetails() {
//代码
}
//为student1和student2添加方法
student1.logDetails = studentDetails;
student2.logDetails = studentDetails;
即使student1和student2的结构一样,但还是要为他们分别添加studentDetails方法。
而使用prototype就不用,它的代码是这样的。
function Student(n, s) {
this.name = n;
this.score = s;
}
//使用prototype添加方法。
Student.prototype.logDetails = function studentDetails() {
//代码
}
//下面三个对象都会有logDetails方法
Student student1;
Student student2;
Student student3;
上述代码是在秒秒学课程代码的基础上改进的,有空你可以去教程网站秒秒学看下js的课程。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询