我正在使用Durandal和其他javascript库开发SPA的几张幻灯片。
我有几个问题:
define('projects', [],
function() {
var Projects = function () {
this.myDataLocal = ko.observable();
this.myDataFromServices = null;
};
Projects.prototype.activate = function (activationData) {
this.myDataFromServices = activationData
this.myDataLocal(activationData());
};
Projects.prototype.detached = function () {
this.myDataFromServices(this.myDataLocal());
};
return Projects;
}
);
一个。在上面的代码是
var Projects = function () {
};
构造函数?
湾当我们向原型添加函数时,
Projects.prototype.activate = function (activationData) {
}
这也会被视为构造函数并在函数加载时自动执行吗?
℃。如果我们要定义像这样的名称,那么要为构造函数限定函数就足够了吗?
var ProjectsSample100 = function () {
}
答案 0 :(得分:1)
A)不完全没有。虽然一个对象' Projects'被建造。
B)这不是构造函数。这会将一个函数分配给Projects对象原型上的属性。特别是在Durandal中,当加载视图模型时,Durandal将检查是否存在“激活”模式。 viewmodel上的函数。如果不存在,则使用默认函数,但在这种情况下,我们已明确设置激活行为。
在此处查看视图模型在Durandal中经历的更多阶段: http://durandaljs.com/documentation/Hooking-Lifecycle-Callbacks.html
C)否。这只是一个定义的对象。
典型的构造函数如下所示:
GROUP BY
请注意使用'这个'分配到'字段'关于对象,以及使用' new'使用此构造函数创建新实例。
我从这里偷了这个例子:http://www.w3schools.com/js/js_object_definition.asp