由于constructor.prototype指向的是一object实例,并且只实例化一次,所以可能出现数据共享问题。
?
<html> <head> <title>object test</title> <script language="javascript"> <!-- function Student(name, age) { this.name = name; this.age = age; this.sayHello = function() { alert("Hello, I am " + this.name); } this.toString = function() { return this.name + " : " + this.age; } } function CollegeStudent(major) { this.major = major; this.toString = function() { return this.student.name + " : " + this.student.age + " : " + this.major; } } var studentPrototype = new Student("siyuan", 24); CollegeStudent.prototype.student = studentPrototype; function testPrototype() { var colleger1 = new CollegeStudent("software"); alert(colleger1); var colleger2 = new CollegeStudent("hardware"); alert(colleger2); colleger1.student.name = "siyuan1"; alert("modify colleger1.student.name"); alert(colleger1); alert(colleger2); } --> </script> </head> <body> <input type="button" value="test prototype" onclick="javascript:testPrototype();"/><br> </body> </html>
?