javascript - backbone.js 模型的 View 实例渲染函数是静态的吗?

标签 javascript backbone.js

这是一个关于 backbone.js 和 javascript 的一般性问题,我是 javascript 的中级:

如果您有一组模型,每个模型都连接到一个 View 实例,那么每个模型实例的 View 实例是否包含 View 渲染方法的完整实例?如果是这样,推荐的方法是什么来确保渲染方法是“静态的”,这样如果每个模型实例都需要完全相同的渲染函数就不会浪费内存?

在下面的例子中,每个帽子实例是否也包含一个渲染函数的实例,或者它是否指向一个“静态”渲染函数?

    var Hat = Backbone.Model.extend({});

    var HatCollection = Backbone.Collection.extend({

        model : Hat,        

    });

    var HatView = Backbone.View.extend({

        render : function() {

            // output the hat's html

        }

    });

    var hats = new HatCollection([ new Hat(), new Hat(), new Hat()])

    hats.each(function(hat) {

        hat.view = new HatView({ model : hat });

    });

最佳答案

Javascript 中没有真正的“静态”或“类”方法。您拥有的是在类原型(prototype)上定义的方法。

当您使用 Backbone.View.extend() 时,您传递的所有内容都会添加到原型(prototype)中,因此它们确实是您所说的“静态”方法。

关于javascript - backbone.js 模型的 View 实例渲染函数是静态的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8170120/

相关文章:

javascript - 如何获取 HTMLElement 的计算样式

javascript - 如何将下一个字符串分组?

javascript - 如何从 Backbone Controller 执行 angularJS Controller 中的函数

javascript - ES6 import 导入 undefined

javascript - 找不到本地 Npm 模块 "grunt-template-jasmine-istanbul"

javascript - 为什么使用定义的函数无法获取Backbone集合模型?

jquery - 你可以将 Backbone listenTo与jquery对象一起使用吗?

javascript - 主干 "remembering"属性中的值

javascript - 在backbone.js中以 subview 编写的火灾事件

javascript - JS 中元素的类视差倾斜