javascript - 将 Call 方法与构造函数一起使用

标签 javascript

我有一个构造函数定义如下:

function Person(fname, lname) {
  this.firstName = fname;
  this.lastName = lname;
  this.printName = function(fname, lname){
      console.log("Name: " + this.firstName + " " + this.lastName);
  }
}

现在,我可以使用 new 关键字从我的构造函数创建一个对象,并调用“printName”方法打印创建的“Person”对象的名字和姓氏:

const p = new Person("John", "Doe");
p.printName(); // output: 'Name: John Doe'

我还可以使用内置的 javascript .call 方法和我的构造函数来创建一个新对象,如下所示:

Person.call({}, "John", "Doe");

这是我的问题: 在这种情况下如何调用“printName”方法?

最佳答案

由于您直接调用该方法,因此您需要从中返回一个值:

function Person(fname, lname) {
  this.firstName = fname;
  this.lastName = lname;
  this.printName = function(){
      console.log("Name: " + this.firstName + " " + this.lastName);
  }
  return this;
}

然后你可以调用结果,比如:

Person.call({}, "John", "Doe").printName();

关于javascript - 将 Call 方法与构造函数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56638707/

相关文章:

javascript - 使用 JavaScript 将文本从一个文本框发送到另一个文本框

javascript - 查看表情符号是否可以在 Discord.JS 中使用?

javascript - 使用 JavaScript 正则表达式匹配和替换字符串

javascript - ng-src 未加载图像

javascript - 如何在基础 CSS 中水平获取文本渲染列?

JavaScript 按钮函数交换

javascript - WordPress 插件开发 w/JS 库依赖项?带源管理的最佳长期方法?

javascript - 将字符串转换为模板字符串

javascript - 无法正确地动态加载脚本和样式

javascript - AJAX .post 方法不将数据传递给 PHP 脚本