从这里访问原型功能

Mik*_*e S 1 javascript

我正在尝试修复一些使用函数和原型函数的Javascript.出于某种原因,当我尝试访问原型函数时,原型函数总是未定义的,我无法弄清楚原因.

这是我想要做的一个简单的例子.基本上,我想_open从原始Container函数声明中引用原型this.

Container();

function Container() {
    alert(this._open);
}

Container.prototype._open = function() {
    alert("hey");
}
Run Code Online (Sandbox Code Playgroud)

你可以在小提琴中看到它只是警告"未定义".但是这个问题这个问题都显示了人们这样做的例子.为什么我一直未定义?

Tah*_*med 7

三件事:

  • new Container();而不是Container();.
  • new Container();所有prototype添加后移动此行.
  • 调用this._open();而不是alert(this._open);实际执行该函数.

所以你的代码应该是这样的:

function Container() {
    this._open();
}   
Container.prototype._open = function() {
    alert('open');
}
new Container();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 是的,有人终于解决了OP代码中出错的所有问题.恭喜. (3认同)