2017-06-23 118 views
1

我正在读机器上的beginner's guide从头学习JavaScript。简单的JavaScript对象构造函数

大概1/4页向下是“THE代码”部分。该部分标题下面是有关的代码。

var Node = function(object) { 
    for (var key in object) 
    { 
     this[key] = object[key]; 
    } 
}; 

我意识到这可能是一个非常基本的构造函数,但我从来没有见过这种模式。

有没有关于此模式设计或类型的构造函数的任何链接或指南。我想尽可能多地学习它。

+4

看起来你可以把什么是“拷贝构造函数”。 – Carcigenicate

+0

将一个对象的属性复制到一个新对象中,而不是手动输入this.prop = 1(etc)。来自C++背景的人正在使用EcmaScript 6 for-in循环。 – InfiniteStack

+0

@InfiniteStack [for-in在ES1中定义...](http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June% 201997.pdf) –

回答

1

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

在现代JS,你也可以写

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

这是一个构造函数,它应该用'new'调用。我们不能从代码中判断,我们唯一的提示是函数名称的大小写。 – Bergi