javascript繼承方法有:1、使用call()方法,可以寫能夠在不同對像上使用的方法;2、apply()方法,語法「apply(用作this 的對象,要傳遞給函數的參數的陣列)」。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
1、call() 方法
call() 方法是與經典的物件冒充方法最相似的方法。它的第一個參數用作 this 的物件。其他參數都直接傳遞給函數本身
function Huster(name,idNum,college) { this.name = name; this.idNum = idNum; this.college = college; this.course = new Array(); this.addCourse = function(course)//这个方法不能用prototype来定义,如果用的话,子类无法继承该方法 { //用原型prototype定义的方法可以用原型链来继承,call()方法和apply()方法都无法继承 this.course.push(course); console.log(this.course); }; } function Autoer(name,idNum) { this.college = ‘自动化‘; Huster.call(this,name,idNum,this.college);//Autoer使用call()方法来继承 Huster if (typeof Autoer._initialized == "undefined") { Autoer.prototype.sayHobby = function() //自己的方法可以用原型链prototype定义 { alert(this.college+‘人喜欢撸代码!‘); }; Autoer._initialized = true; } } var autoer1 = new Autoer(‘偶人儿‘,‘U123456789‘); //声明一个实例autoer1 console.log(autoer1.name,autoer1.idNum,autoer1.college,autoer1.course); autoer1.addCourse(‘logistics‘);//调用Huster的方法 autoer1.sayHobby(); //调用自身的方法
2、apply() 方法
apply() 方法與call()方法幾乎一樣,唯一的差別就是apply ()方法只有兩個參數,第一個用作this 的對象,第二個是要傳遞給函數的參數的陣列。也就是說apply()方法把call()方法的若干個參數放到一個數組裡,傳遞給父類別
function Huster(name,idNum,college){ this.name = name; this.idNum = idNum; this.college = college; this.course = new Array(); this.addCourse = function(course)//这个方法不能用prototype来定义,如果用的话,子类无法继承该方法 { //用原型prototype定义的方法可以用原型链来继承,call()方法和apply()方法都无法继承 this.course.push(course); console.log(this.course); }; } function Autoer(name,idNum) { this.college = ‘自动化‘; Huster.apply(this,new Array(name,idNum,this.college));//Autoer使用apply()方法来继承 Huster if (typeof Autoer._initialized == "undefined") { Autoer.prototype.sayHobby = function() //自己的方法可以用原型链prototype定义 { alert(this.college+‘人喜欢撸代码!‘); }; Autoer._initialized = true; } } var autoer1 = new Autoer(‘偶人儿‘,‘U123456789‘); //声明一个实例autoer1 console.log(autoer1.name,autoer1.idNum,autoer1.college,autoer1.course); autoer1.addCourse(‘logistics‘);//调用Huster的方法 autoer1.sayHobby(); //调用自身的方法
【推薦學習:javascript影片教學】
以上是javascript繼承方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!