Backbone.js 什么是;r";当您';你在看主干对象吗?

Backbone.js 什么是;r";当您';你在看主干对象吗?,backbone.js,google-chrome-devtools,Backbone.js,Google Chrome Devtools,我正在学习主干,并使用ChromeDevl工具查看浏览器中的对象。“r”是什么意思 它是用于创建模型对象的构造函数的名称。然而,在这种情况下,主干代码已经缩小 如果创建基本模型类的实例,它将按如下方式记录: 如果查看,可以找到构造函数定义: var Model = Backbone.Model = function(attributes, options) { 但是,如果您的代码被压缩,对象将显示如下: 在您的例子中,您正在使用主干的扩展机制来创建从基础模型继承的新模型类型 “未压缩”将显

我正在学习主干,并使用ChromeDevl工具查看浏览器中的对象。“r”是什么意思


它是用于创建模型对象的构造函数的名称。然而,在这种情况下,主干代码已经缩小

如果创建基本模型类的实例,它将按如下方式记录:

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

var Model = Backbone.Model = function(attributes, options) {
但是,如果您的代码被压缩,对象将显示如下:

在您的例子中,您正在使用主干的扩展机制来创建从基础模型继承的新模型类型

“未压缩”将显示如下所示:

同样,我们可以查看主干源代码以了解原因:

var extend = function(protoProps, staticProps) {
    // ...
    child.prototype.constructor = child;
    // ...
    return child
}
您可以看到,当创建新模型类型时,Chrome无法访问您要用于模型的名称。相反,它会尽力从变量名中推断出正确的名称

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


在上一个示例中,构造函数中有一个以“n”开头的属性?这就是为什么它在结尾被称为“n”?
n
只是
child
的缩略名称。确切名称将取决于所使用的缩微器。