编辑这个页面须要登录或更高权限!

JavaScript 函数调用

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();
测试看看‹/›

JavaScript菜鸟教程
JavaScript 对象
JavaScript 函数
JS HTML DOM
JS 浏览器BOM
AJAX 菜鸟教程
JavaScript 参考手册