<!DOCTYPE html>
<html lang="en"><head> <meta charset="UTF-8"> <title>constructorfunctionInherit</title> <script type="text/javascript"> //声明父类 function superClass(id){ this.id = id; this.books = ['html','css','js']; } superClass.prototype.getBooks = function(){ console.log(this.books); } //声明子类 function subClass(id){ superClass.call(this,id);//让子this指向父this,后面带的是父类需传入的参数id } // subClass.prototype.getSubName = function(){ // console.log(this.id); // } //实例化对象测试 var test1 = new subClass(1); var test2 = new subClass(2); test2.books.push('php');//test2插入的数据'php'不影响test1 console.log(test1.id); //1 console.log(test1.books); //["html", "css", "js"] console.log(test2.id); //2 console.log(test2.books); //["html", "css", "js", "php"] //注:构造函数式继承是访问不到父原型链上的属性和方法的 test1.getBooks(); //报错:undefined is not a function //本例已经通过验证 </script></head><body> </body></html>