การดำเนินการของ polymorphism สามารถใช้วิธีการที่คล้ายกันในการสืบทอด ขั้นแรกให้กำหนดคลาสนามธรรมซึ่งมีการเรียกวิธีการเสมือนจริงบางอย่าง วิธีการเสมือนจริงไม่ได้ถูกกำหนดไว้ในคลาสนามธรรม แต่ถูกนำไปใช้ผ่านคลาสการใช้งานที่เป็นรูปธรรม
ดังในตัวอย่างต่อไปนี้:
Object.extend = function (ปลายทาง, แหล่งที่มา) {สำหรับ (คุณสมบัติในแหล่งที่มา) {ปลายทาง [คุณสมบัติ] = แหล่งที่มา [คุณสมบัติ]; } ส่งคืนปลายทาง; } // กำหนดฐานคลาสพื้นฐานพื้นฐานโดยไม่มีฐานฟังก์ชันคอนสตรัคเตอร์ () {}; base.prototype = {เริ่มต้น: function () {this.oninit (); // วิธีเสมือนจริงเรียกว่า}} ฟังก์ชัน subclassa () {// constructor} subclassa.prototype = object.extend ({propinsubclassa: "propinsubclassa" }, base.prototype); ฟังก์ชั่น subclassb () {// constructor} subclassb.prototype = object.extend ({propinsubclassb: "propinsubclassb", oninit: function () {Alert (this.propinsubclassb);}}, base.prototype); var obja = subclassa ใหม่ (); obja.initialize (); // output "propinsubclassa" var objb = subclassb ใหม่ (); objb.initialize (); // output "propinsubclassb"ขั้นแรกให้กำหนดฐานคลาสพื้นฐานที่กำหนดไว้ วิธี ONINIT เรียกว่าในวิธีการเริ่มต้นของคลาสฐาน แต่คลาสพื้นฐานไม่ได้ใช้การใช้งานหรือการประกาศของวิธี ONINIT คลาส Subclassa และ subclassB สืบทอดมาจากคลาสพื้นฐานและใช้วิธีการ ONINIT ในรูปแบบที่แตกต่างกัน