我写了一段代码,我希望每秒都能看到Pattern pattern = Pattern.compile(".*?¥(\\d*.\\d*)", Pattern.DOTALL);
,但我有"Hello, world!"
,我找不到我的错误。
undefined
答案 0 :(得分:7)
因为执行setTimeout
回调时,默认情况下会以窗口作为其上下文(函数中由this
(this引用的对象)执行。
您可以使用Function.bind()
将自定义上下文传递给回调
function Greeting(message, delay) {
this.message = message;
setInterval(this.blowUp.bind(this), delay * 1000); //use setInterval since you want to repeat the callback execution
}
Greeting.prototype.blowUp = function() {
snippet.log(this.message);
};
new Greeting("Hello, world!", 1);

<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
注意:如果要重复执行回调,则必须使用setInterval而不是setTimeout()