在下面的代码中,我需要调用子类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/