作者:幻灵风 | 来源:互联网 | 2024-12-01 13:27
在 Javascript 中,call
方法是一个非常有用的工具,它可以改变函数调用时的 this
值。下面的代码示例展示了如何利用 call
方法来改变函数的行为,使得浏览器首先显示 'Hello',然后显示 'stu-Hello'。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| function Person() {} Person.prototype.greet = function() { alert('Hello'); };
function Pupil() {} Pupil.prototype = new Person();
Pupil.prototype.greet = function() { const originalGreet = Pupil.prototype.greet; originalGreet.call(this); alert('stu-Hello'); };
const student = new Pupil(); student.greet(); |
在这个例子中,我们定义了两个构造函数 Person
和 Pupil
,并且让 Pupil
继承自 Person
。通过覆盖 Pupil.prototype.greet
方法,并在其内部调用 originalGreet.call(this)
,我们可以确保在调用 student.greet()
时,先执行父类的方法(即显示 'Hello'),然后再执行子类的方法(即显示 'stu-Hello')。这样,我们就能够理解 call
方法是如何帮助我们在继承链中调用父类方法的。