javascript - javascript中从 "private"对象调用 "parent"方法

标签 javascript

在下面的代码中,我需要调用子类Worker中的“私有(private)”方法run

function Person(scope, ...) {
  scope.name = "Juan";

  var run = function() {
     console.log(scope.name + " is running");
  };
}

function Worker(scope, ...) {
  Person.call(this, scope, ...);

  var jumpAndRun = function() {
     console.log(scope.name + " is jumping");
     run(); // how to call this
  };
}

Worker.prototype = Object.create(People.prototype);

目前,如果我调用 run 方法,我会得到一个错误:run 未定义!

最佳答案

抱歉,无法执行此操作,除非 People 类(应称为 Person)使该方法可用。

常见的做法是使“私有(private)”方法以下划线开头。它并不 100% 授予任何安全性,但它至少给其他开发人员一个暗示,表明它是私有(private)的。

function Person(scope, ...) {
  scope.name = "Juan";

  var run = function() {
     console.log(scope.name + " is running");
  };

  this._run = run;
}

function Worker(scope, ...) {
  Person.call(this, scope, ...);

  var jumpAndRun = function() {
     console.log(scope.name + " is jumping");
     this._run(); // how to call this
  };
}

关于javascript - javascript中从 "private"对象调用 "parent"方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747934/

相关文章:

javascript - 访问 JavaScript 中 some() 函数中使用的对象

javascript - 使用对象数组中的键查找 lastIndexOf() 对象

javascript - ES6 Set 允许重复数组/对象

javascript - 如何使用 if/else 语句更改全局变量

javascript - jQuery <tag> 按不同选项排序

javascript - 用于 NodeJS 的 MongoDB 函数文档

javascript - 将kendo模板中的HTML标签渲染为HTML

javascript - 如何将 MQTT 客户端的 JSON 值解析为plotly javascript

javascript - 确定什么触发焦点事件?

javascript - 如何将德国 map 放在 HTML 中的 svg 上? D3js