描述里面的问题
function Parent(){
this.alertParent(){
alert("Parent alert");
}
function child(){
// how can I call to this.alertParent() from here without passing any
// parameters?
}
}
描述里面的问题
function Parent(){
this.alertParent(){
alert("Parent alert");
}
function child(){
// how can I call to this.alertParent() from here without passing any
// parameters?
}
}
你的问题的标题令人困惑。非正式术语“父”函数用于调用函数。
在您的情况下,您在构造函数中有两个函数,您只想从另一个调用一个。具体来说,您想从“私有”方法调用“公共”方法(我将这些术语放在引号中,因为 JavaScript 不支持可见性,这些是实现相同目的的解决方法)。
只需保留对当前实例的引用:
function Parent(){
var self = this;
this.alertParent = function() {
alert("Parent alert");
}
function child() {
self.alertParent();
}
}
child
关闭它定义的上下文中的所有变量,因此它可以访问self
. this
当然会改变[MDN]。
除了创建闭包,您还可以使用[MDN]或[MDN]将实例显式传递给。child
.call()
.apply()
所以你的函数定义保持不变
function child() {
this.alertParent();
}
当你调用函数时,你调用它,例如,child.call(this)
如果你知道它this
指的是你的实例(而不是this
它可以是任何其他变量)。
您的代码有语法错误。也许你的意思是:
function Parent(){
this.alertParent = function () {
alert("Parent alert");
};
this.child = function () {
this.alertParent();
}
}