JavaScript扩展“referenceerror:找不到变量”

时间:2018-01-17 18:27:16

标签: javascript closures extend

我的大脑今天早上没有工作 - 自从我做JavaScript以来已经有一段时间了。这是一个很小的例子:

function foobar() {
  var that = this;
}
foobar.prototype.bletch = function() { console.log(that) }
xyzzy = new foobar();
xyzzy.bletch();

给予:ReferenceError: can't find variable: that

我可以通过以下方式完成此任务:

extend(foobar, { bletch: function() ... } );

那么,写这个的正确方法是什么?我需要能够从外部调用此对象/函数的方法,并让它记住创建时this的内容。 (我知道这是一个愚蠢的问题。)

使用像JQuery这样的软件包,但不能这样做。

1 个答案:

答案 0 :(得分:0)

嗯......将放在里面这个功能起作用了:

function foo() {
  var that = this;

  this.bar = function() { console.log(that) }
}

zoo = new foo();
zoo.bar()

"现在回到我身边......"