javascript - Durandal 框架基础知识

标签 javascript dom-events durandal

我将通过几张幻灯片了解如何使用 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; 
    }
  );

a.上面的代码是

var Projects = function () {
            
        };

构造函数?

b.当我们向原型(prototype)添加函数时,

Projects.prototype.activate = function (activationData) {
}

这也会被视为构造函数并在函数加载时自动执行吗?

c.如果我们像这样定义函数的名称就足以限定构造函数的函数吗?

var ProjectsSample100 = function () {

}

最佳答案

A) 不完全不是。尽管创建了一个对象“项目”。

B) 这不是构造函数。这会将一个函数分配给 Projects 对象原型(prototype)上的属性。特别是在 Durandal 中,当加载 View 模型时,Durandal 将检查 View 模型上是否存在“激活”函数。如果不存在,它将使用默认函数,但在这种情况下,我们已显式设置激活行为。

在此处详细了解 View 模型在 Durandal 中经历的阶段: http://durandaljs.com/documentation/Hooking-Lifecycle-Callbacks.html

C) 不。这只是一个被定义的对象。

典型的构造函数如下所示:

function person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");

请注意使用“this”分配给对象上的“字段”,以及使用“new”通过此构造函数创建新实例。

我从这里偷了这个例子:http://www.w3schools.com/js/js_object_definition.asp

关于javascript - Durandal 框架基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554288/

相关文章:

javascript - Codeigniter - 打印网页时遇到问题

javascript - 如何保存所有页面的输入值并允许用户在页面重新加载时查看更改?

javascript - 当某些内容添加到 Javascript 中的队列或数组时触发事件

javascript - 如何传播到 DURANDAL 由外部 JavaScript 框架(如 Google Charts)生成的点击事件

javascript - Durandal构造函数但仍想记住数据

javascript - 对逗号分隔的对象进行多选过滤器

javascript - 在函数内给函数对象添加属性有什么陷阱?

javascript - event.waitUntil 在 Service Worker 中做什么以及为什么需要它?

javascript - 如果正则表达式紧随第一个匹配之后,为什么会忽略第二个匹配?

javascript - 在 Durandal 中插入脚本标签