Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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
Javascript 无法读取属性。。。主干中未定义的_Javascript_Jquery_Backbone.js_Raphael - Fatal编程技术网

Javascript 无法读取属性。。。主干中未定义的

Javascript 无法读取属性。。。主干中未定义的,javascript,jquery,backbone.js,raphael,Javascript,Jquery,Backbone.js,Raphael,我试图将我用raphael.js制作的这个简单项目转换为使用backbone.js,但我一直遇到同样的错误,我不知道为什么。在我的模型中的函数中,我尝试使用“this”访问变量,但仍然会遇到以下错误“无法读取未定义的属性'length'”,例如数组。我的模型如下所示: GameModel = Backbone.Model.extend({ defaults: { spawnId: '', gameloopId: '',

我试图将我用raphael.js制作的这个简单项目转换为使用backbone.js,但我一直遇到同样的错误,我不知道为什么。在我的模型中的函数中,我尝试使用“this”访问变量,但仍然会遇到以下错误“无法读取未定义的属性'length'”,例如数组。我的模型如下所示:

GameModel = Backbone.Model.extend({
        defaults: {

            spawnId: '',
            gameloopId: '',
            checkId: '',
            goingUp: false,
            counter: 0,     
            recentscores: [],
            enemies: '',
            speed: -4,
            score: 0,
            health: 100,
            paper: '',
            t: '',
            h: '',
            c: '',
            circle: ''

        },
        initialize: function(){

            this.enemies = [];
            this.paper = new Raphael($('#canvas'), 0, 0);
            this.circle = this.paper.circle(100, 50, 30);
            this.t = this.paper.text(1000, 50, "Score: " + this.score);
            this.h = this.paper.text(50, 50, "Health: " + this.health);
            this.c = this.paper.image("background.png", 0, 0, 2400, 800);
            this.paper.setSize(1200,800);
            this.circle.attr({fill: '#9cf', stroke: '#ddd', 'stroke-width': 5});
            this.t.attr({ "font-size": 20, "font-family": "Arial, Helvetica, sans-serif" });
            this.h.attr({ "font-size": 20, "font-family": "Arial, Helvetica, sans-serif" });
        },
为此:

this.feeds=[];

也许你应该试着使用

this.set(“敌人”,[])

this.circle=this.paper.circle(100,50,30);


this.set(“圈”、this.get(“纸”).circle(100、50、30))

这些“函数”在您的模型中起什么作用“看起来像,你怎么称呼他们?另外,在您的
默认值中使用
recentscores
是个坏主意,默认值是浅复制的,因此每个人都将共享对同一数组的引用。@muistooshort,它们只是尝试访问模型中定义的变量的函数。我有一个有条件的for循环“是的,但它们怎么叫?通常,
的值取决于函数的调用方式,而不是函数的定义方式或定义位置。并将您的<代码>默认值对象更改为<代码>默认< /代码>函数,该函数返回默认值。@ MistoSoStopy,哦,嗯,我没有考虑过。大多数函数都是从其他函数中调用的。我有一个启动函数,我在创建模型实例后调用它,启动调用更新等等。这可能是问题吗?我甚至不知道如何访问这些变量。有了getters?在jsfiddle.net或jsbin.com上进行一个简单的演示可能会让问题变得非常清楚。