所以在使用openlayers来访问函数调用内部范围内的字段时遇到了一些问题。
window.addEventListener('beforeunload', function(e) {
var myPageIsDirty = tinymce.activeEditor.isDirty()
if(myPageIsDirty) {
//following two lines will cause the browser to ask the user if they
//want to leave. The text of this dialog is controlled by the browser.
e.preventDefault(); //per the standard
e.returnValue = ''; //required for Chrome
}
//else: user is allowed to leave without a warning dialog
});
this.myFieldThatIsntInScope的第二个字段是有问题的一个字段,它似乎超出范围,然后该函数中的任何字段也超出了范围。
是否有办法限制这些范围,我尝试将各个字段分配给代码块父级中的变量,但似乎导致我正在使用的ol映射对象出现问题。
答案 0 :(得分:1)
箭头函数本身不具有此功能; 使用封闭词法上下文的this
值,即,箭头函数遵循常规的变量查找规则。
因此,在搜索当前范围中不存在的this
时,他们最终从其包围范围中找到了它。因此,在以下代码中,传递给myFieldThatIsntInScope
的函数中的this与词汇包围函数中的this具有相同的值。
method() {
this.myField.on('click',
(args) => { this.myFieldThatIsntInScope(evt.pixel, (args) => { });
});
}