JavaScript的面向对象和继承, 这一点另写了一篇文章:论JavaScript和C/C++的想通之处
对象拷贝 JavaScript没有提供复制一个对象的方法, 事实上, 你确实很少需要这么做, C++要特别小心的使用对象复制操作, 因为对象可能很复杂, 简单的复制成员是不行的. 虽然如此, 也不是没有这种需求, JavaScript的很多内置对象提供了复制和克隆函数, 自定义对象, 也可以定义给一个克隆函数, 需要的话, 就调用它.
闭包 在理解了JavaScript的函数其实就是C++的类之后, 闭包就非常简单了. 闭包就是一个定义在函数内部的函数, 和定义在外部不同, 它们不是全局的, 即使这个函数被执行, 定义在它内部的函数也不能在外部被直接从函数名调用它. 但是可以通过把它赋值给外部能访问的变量或者父函数返回它这种方式来访问它. 闭包特殊的地方在于, 闭包一旦创建完成, 和父函数就没有任何关系了, 但是每调用一次父函数(包括直接调用和 new 创建实例的调用) 闭包就会创建一分父函数的局部变量, 这就导致父函数成为了一个类似C++类定义的东西, 闭包使用的变量是保存在自己内部的, 而不是父函数内部.