call()允许将属于一个对象的函数/方法分配给另一个对象并对其进行调用。
function Product(name, price) { this.name = name; this.price = price; } function Food(name, price) { Product.call(this, name, price); this.category = "food"; } document.write(new Food("cheese", 12).name);测试看看
示例中call()向函数/方法提供一个新的值this。 通过调用,您可以编写一次方法,然后在另一个对象中继承该方法,而不必为新对象重写该方法。
您可以使用call()来链接对象的构造函数,类似于Java。
function Product(name, price) { this.name = name; this.price = price; } function Food(name, price) { Product.call(this, name, price); this.category = "food"; } function Toy(name, price) { Product.call(this, name, price); this.category = "toy"; } let cheese = new Food("cheese", 12); let robot = new Toy("robot", 85);测试看看
在下面的示例中,我们在不传递参数的情况下调用了display函数:
var name = "Seagull"; function display() { document.write(this.name); } display.call();测试看看