调用;“私人”;方法来自;“家长”;javascript中的对象
在下面的代码中,我需要调用子类调用;“私人”;方法来自;“家长”;javascript中的对象,javascript,Javascript,在下面的代码中,我需要调用子类Worker 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() {
Worker
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未定义
抱歉,无法执行此操作,除非人员
类(应称为人员
)使该方法可用
通常的做法是使“私有”方法以下划线开头。它并没有100%地授予任何安全性,但它至少给了其他开发人员一个暗示,它应该是私有的
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
};
}
抱歉,无法执行此操作,除非
People
类(应称为Person
)使该方法可用
通常的做法是使“私有”方法以下划线开头。它并没有100%地授予任何安全性,但它至少给了其他开发人员一个暗示,它应该是私有的
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
};
}
抱歉,无法执行此操作,除非
People
类(应称为Person
)使该方法可用
通常的做法是使“私有”方法以下划线开头。它并没有100%地授予任何安全性,但它至少给了其他开发人员一个暗示,它应该是私有的
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
};
}
抱歉,无法执行此操作,除非
People
类(应称为Person
)使该方法可用
通常的做法是使“私有”方法以下划线开头。它并没有100%地授予任何安全性,但它至少给了其他开发人员一个暗示,它应该是私有的
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
};
}
那完全不可能。它对
人构造函数的作用域是完全私有的,没有某种程度的“保护”。为什么不能公开它?从何处调用run
和jumpAndRun
?我的建议是:不要试图模拟语言不支持的东西。保持简单。它使代码更容易理解和维护。@FelixKling是的,你是对的,但我不会重写很多地方的代码都是一样的,目前我正在重构,还有什么该死的scope
?这完全不可能。它对人构造函数的作用域是完全私有的,没有某种程度的“保护”。为什么不能公开它?从何处调用run
和jumpAndRun
?我的建议是:不要试图模拟语言不支持的东西。保持简单。它使代码更容易理解和维护。@FelixKling是的,你是对的,但我不会重写很多地方的代码都是一样的,目前我正在重构,还有什么该死的scope
?这完全不可能。它对人构造函数的作用域是完全私有的,没有某种程度的“保护”。为什么不能公开它?从何处调用run
和jumpAndRun
?我的建议是:不要试图模拟语言不支持的东西。保持简单。它使代码更容易理解和维护。@FelixKling是的,你是对的,但我不会重写很多地方的代码都是一样的,目前我正在重构,还有什么该死的scope
?这完全不可能。它对人构造函数的作用域是完全私有的,没有某种程度的“保护”。为什么不能公开它?从何处调用run
和jumpAndRun
?我的建议是:不要试图模拟语言不支持的东西。保持简单。它使代码更容易理解和维护。@FelixKling是的,你是对的,但我不会重写很多代码,在很多地方都是一样的,目前我正在重构。还有,什么是scope
?你的jumpAndRun
函数也需要是一个方法,不过。@rkmax让你添加了这个。\u run=run;在Person costructor中?在这里,我做了我认为正确的事情,这里有一把小提琴:您的jumpAndRun
函数也需要是一个方法,不过@rkmax您添加了this.\u run=run;在Person costructor中?在这里,我做了我认为正确的事情,这里有一把小提琴:您的jumpAndRun
函数也需要是一个方法,不过@rkmax您添加了this.\u run=run;在Person costructor中?在这里,我做了我认为正确的事情,这里有一把小提琴:您的jumpAndRun
函数也需要是一个方法,不过@rkmax您添加了this.\u run=run;亲自动手的建筑师?这里我做了我认为正确的事情,这里有一把小提琴: