简单JavaScript对象构造函数

简单JavaScript对象构造函数,javascript,object,constructor,Javascript,Object,Constructor,我正在读一篇关于机器学习的文章,从零开始使用JavaScript 页面下方大约1/4处是标题为“代码”的部分。在该部分标题下是相关代码 var Node = function(object) { for (var key in object) { this[key] = object[key]; } }; 我意识到这可能是一个非常基本的构造函数,但我以前从未见过这种模式 是否有关于此模式设计或构造函数类型的链接或指南。我想尽可能多地了解它。没有多少东

我正在读一篇关于机器学习的文章,从零开始使用JavaScript

页面下方大约1/4处是标题为“代码”的部分。在该部分标题下是相关代码

var Node = function(object) {  
    for (var key in object)
    {
        this[key] = object[key];
    }
};
我意识到这可能是一个非常基本的构造函数,但我以前从未见过这种模式


是否有关于此模式设计或构造函数类型的链接或指南。我想尽可能多地了解它。

没有多少东西需要了解或理解。它只是构造一个新对象并将其他对象的属性复制到其中

在现代JS中,您还可以编写

function Node(object) {
  Object.assign(this, object);
}

看起来像是你可以称之为“复制构造函数”的东西。将一个对象的属性复制到一个新对象中,而不是手动键入this.prop=1(etc)。C++背景下的人正在使用EcMAScript 6来为In循环。@ NimeItestACK@ QARthANDO,构造函数应该知道要期望的属性,并且只显式地分配那些属性。@ Qasthand Sudio明确地声明:“它只期望一个具有属性“类型”、“区域”和“房间”的对象。因此代码应该反映这一点,并读取
this.type=object.type;this.area=object.area;this.rooms=object.rooms而不是那个循环。当它应该用
new
调用时,它是一个构造函数。我们无法从代码中真正判断,我们得到的唯一提示是函数名的大写。