English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript基础教程

JavaScript 对象

JavaScript 函数

JS HTML DOM

JS 浏览器BOM

AJAX 基础教程

JavaScript 参考手册

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