在什么情况下,默认值必须是一个函数?

用户名

我从查看localtodos应用程序开始,可以看到此代码使其成为一个函数。我不知道该如何选择。我的假设是,函数中的代码要等到您立即调用后才调用该函数,而您调用的函数与和字面量不同。

这是用例:

var FavoritesRow = Backbone.Model.extend({
    Name: 'FavoritesRow',
    defaults: function () {
        return {
            url: "http://www.google.com",
            title: "google",
            favicon: "http://www.google.com/favicon.ico",
            tag: "search"
        };
    }
});

但是,我通常应该遵循哪些规则?

尼科斯

精美的手册上model.defaults

请记住,在JavaScript中,对象是通过引用传递的,因此,如果包含一个对象作为默认值,则它将在所有实例之间共享。而是将默认值定义为一个函数。

比较

var M = Backbone.Model.extend({
    defaults: {
        obj: {}
    }
});

var m1 = new M();
var m2 = new M();
console.log(m1.get('obj') === m2.get('obj'));
// ==> outputs true

http://jsfiddle.net/nikoshr/6ctZ2/

var M = Backbone.Model.extend({
    defaults: function() {
        return {
            obj: {}
        };
    }
});

var m1 = new M();
var m2 = new M();
console.log(m1.get('obj') === m2.get('obj'));
// ==> outputs false

http://jsfiddle.net/nikoshr/6ctZ2/1/

使用函数可以让您定义默认的数组或对象,而无需在类的所有实例上共享它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在什么情况下,iOS上的坐标空间是默认值(未翻转)?

来自分类Dev

如何设置默认值ngOptions,当选项是对象,并且默认情况下是一个整数ID

来自分类Dev

在什么情况下git commit不能完全具有一个父提交?

来自分类Dev

在什么情况下我必须使用std :: function?

来自分类Dev

powershell v2函数,如何在不命名第二个参数的情况下为第一个参数提供默认值?

来自分类Dev

默认情况下,条纹中的另一个枚举值

来自分类Dev

默认情况下从选择框中选择第一个值-AngularJS

来自分类Dev

如果在未设置任何内容的情况下局部变量获取默认值,为什么必须初始化获取变量“ xxx”?

来自分类Dev

R默认情况下设置一个值。为什么不选择ceiling()或round()?

来自分类Dev

为什么在这种情况下保证金默认值不为0?

来自分类Dev

在保持默认值的情况下使文本消失

来自分类Dev

为什么isnormal()在不正常的情况下会说一个正常的值?

来自分类Dev

如何用另一个函数更改一个函数的默认值?

来自分类Dev

如何创建一个默认情况下返回值但又具有扩展方法的方法?

来自分类Dev

在什么情况下,我们必须使用localstorage而不是cookie?

来自分类Dev

在什么情况下必须在python中定义或初始化变量

来自分类Dev

如何在每个后续值都比前一个值低的情况下实现随机函数?

来自分类Dev

在什么情况下我会使用非默认Java加密提供程序?

来自分类Dev

为什么我可以在没有“ throws”关键字的情况下声明一个函数?

来自分类Dev

php函数返回一个布尔值,并在有条件的情况下使用它

来自分类Dev

如果一个函数已经返回某些东西,如何防止该函数的默认值

来自分类Dev

在什么情况下Angular中插值合法,为什么?

来自分类Dev

在什么情况下,插值法在Angular中是合法的,为什么?

来自分类Dev

HTML中的TABS:默认情况下选择第一个TAB

来自分类Dev

折叠全部,默认情况下仍打开第一个手风琴

来自分类Dev

Dojo Select-默认情况下选择第一个选项

来自分类Dev

默认情况下,第一个切换处于打开状态

来自分类Dev

默认情况下错误使用了最后一个字体的粗细

来自分类Dev

默认情况下,postgresql是否有一个名为`postgres`的数据库?

Related 相关文章

  1. 1

    在什么情况下,iOS上的坐标空间是默认值(未翻转)?

  2. 2

    如何设置默认值ngOptions,当选项是对象,并且默认情况下是一个整数ID

  3. 3

    在什么情况下git commit不能完全具有一个父提交?

  4. 4

    在什么情况下我必须使用std :: function?

  5. 5

    powershell v2函数,如何在不命名第二个参数的情况下为第一个参数提供默认值?

  6. 6

    默认情况下,条纹中的另一个枚举值

  7. 7

    默认情况下从选择框中选择第一个值-AngularJS

  8. 8

    如果在未设置任何内容的情况下局部变量获取默认值,为什么必须初始化获取变量“ xxx”?

  9. 9

    R默认情况下设置一个值。为什么不选择ceiling()或round()?

  10. 10

    为什么在这种情况下保证金默认值不为0?

  11. 11

    在保持默认值的情况下使文本消失

  12. 12

    为什么isnormal()在不正常的情况下会说一个正常的值?

  13. 13

    如何用另一个函数更改一个函数的默认值?

  14. 14

    如何创建一个默认情况下返回值但又具有扩展方法的方法?

  15. 15

    在什么情况下,我们必须使用localstorage而不是cookie?

  16. 16

    在什么情况下必须在python中定义或初始化变量

  17. 17

    如何在每个后续值都比前一个值低的情况下实现随机函数?

  18. 18

    在什么情况下我会使用非默认Java加密提供程序?

  19. 19

    为什么我可以在没有“ throws”关键字的情况下声明一个函数?

  20. 20

    php函数返回一个布尔值,并在有条件的情况下使用它

  21. 21

    如果一个函数已经返回某些东西,如何防止该函数的默认值

  22. 22

    在什么情况下Angular中插值合法,为什么?

  23. 23

    在什么情况下,插值法在Angular中是合法的,为什么?

  24. 24

    HTML中的TABS:默认情况下选择第一个TAB

  25. 25

    折叠全部,默认情况下仍打开第一个手风琴

  26. 26

    Dojo Select-默认情况下选择第一个选项

  27. 27

    默认情况下,第一个切换处于打开状态

  28. 28

    默认情况下错误使用了最后一个字体的粗细

  29. 29

    默认情况下,postgresql是否有一个名为`postgres`的数据库?

热门标签

归档