【问题标题】:What does the "r" mean in chrome dev tools when you're looking at a Backbone Object?当您查看主干对象时,chrome 开发工具中的“r”是什么意思?
【发布时间】:2016-04-28 16:16:57
【问题描述】:

我正在学习主干并使用 chrome devl 工具查看浏览器中的对象。 'r' 是什么意思?

【问题讨论】:

    标签: backbone.js google-chrome-devtools


    【解决方案1】:

    它是用于创建模型对象的构造函数的名称。但是在这种情况下,Backbone 代码已被缩小。

    如果您创建基础模型类的实例,它将被记录如下:

    如果您查看Backbone source code,您可以找到构造函数定义:

    var Model = Backbone.Model = function(attributes, options) {
    

    但是,如果您的代码被压缩,对象将改为如下所示:

    在您的情况下,您使用 Backbone 的扩展机制来创建一个从基本模型继承的新模型类型。

    解压后显示如下:

    再次,我们可以查看 Backbone 源代码以了解原因:

    var extend = function(protoProps, staticProps) {
        // ...
        child.prototype.constructor = child;
        // ...
        return child
    }
    

    您可以看到,在创建新模型类型时,Chrome 无法访问您要用于模型的名称。相反,它会尽力从变量名中推断出正确的名称。

    然后,压缩后,您将获得您在控制台中看到的单字符类名称:

    【讨论】:

    • 所以在最后一个例子中,构造函数中有一个以'n'开头的属性?这就是为什么它在最后被称为'n'?
    • n 只是 child 的缩小名称。确切的名称将取决于使用的缩小器。
    猜你喜欢
    • 2021-01-28
    • 2018-03-25
    • 2018-07-12
    • 2016-11-13
    • 1970-01-01
    • 2012-08-14
    • 2011-06-23
    • 2012-07-22
    相关资源
    最近更新 更多