Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 为什么在以下主干视图代码中出现未定义错误?_Backbone.js - Fatal编程技术网

Backbone.js 为什么在以下主干视图代码中出现未定义错误?

Backbone.js 为什么在以下主干视图代码中出现未定义错误?,backbone.js,Backbone.js,this.model.filterData(searchValue)转换为 未定义的.model.filterData(searchValue);在控制台中 有什么想法吗?如果您在不使用箭头函数的情况下重新编写该方法,它似乎会起作用 它失败的原因是因为Babel将按照ES6规范传输代码 var MyView = Backbone.View.extend({ name: 'MY-VIEW', doStuff: _.debounce(function() { ale

this.model.filterData(searchValue)转换为 未定义的.model.filterData(searchValue);在控制台中


有什么想法吗?

如果您在不使用箭头函数的情况下重新编写该方法,它似乎会起作用

它失败的原因是因为Babel将按照ES6规范传输代码

var MyView = Backbone.View.extend({
    name: 'MY-VIEW',
    doStuff: _.debounce(function() {
        alert(this.name);
    }, 1000)
});

var view = new MyView();
view.doStuff();
// This will alert 'MY-VIEW'
看看babel传输代码的不同之处:

您可以在此处阅读有关箭头函数和
此值的更多信息:


它所说的是,
这个
是未定义的。您希望在该上下文中引用此
什么?请在您的答案中包含巴别塔示例,并提供链接作为参考。对不起,我正忙着这么做
var MyView = Backbone.View.extend({
    name: 'MY-VIEW',
    doStuff: _.debounce(function() {
        alert(this.name);
    }, 1000)
});

var view = new MyView();
view.doStuff();
// This will alert 'MY-VIEW'
module.exports = (() => {
  // this = undefined, because module.exports is global.
  return Frame.extend({
    // inherits this from above, undefined
    _handleArrowFunction: _.debounce(ev => {
      console.log(this);
    }),
    _handleRegularFunction: _.debounce(function() {
      console.log(this);
    })
  });
})