我有点期待下面的代码能够工作——我想要一个非递归的克隆。
它没有...
为什么,我能做些什么来绕过它?
person=new Object();
person.firstname="John";
person2 = new person; //Expected a new person object with firstname john
"TypeError: object is not a function"
和同样的
person2 = new person()
我有点期待下面的代码能够工作——我想要一个非递归的克隆。
它没有...
为什么,我能做些什么来绕过它?
person=new Object();
person.firstname="John";
person2 = new person; //Expected a new person object with firstname john
"TypeError: object is not a function"
和同样的
person2 = new person()
Javascript 中的new
运算符应用于函数以创建新对象,并将该函数原型链应用于新对象。您不能将其直接应用于对象。
如果你想在 javascript 中克隆一个对象,这不是一个简单的过程。您可以查看此答案以获取可能性列表:如何正确克隆 JavaScript 对象?. 最简单的方法是使用 jQuery 和 $.extend。但是您也可以编写一个通用的 Javascript 解决方案。如果您只想将它用于特定类型的对象,它可能相当简单。
如果你想正确使用 new ,你可以像这样创建一个构造函数
var Person = function() {
this.firstname = "John";
};
var person1 = new Person();
var person2 = new Person();
这将创建 2Person
个彼此独立的新对象。
var Person = function() {
this.firstname = 'John';
};
person2 = new Person();
抛出的错误为您提供了有价值的信息(这在 JavaScript 中肯定很少见)——您只能在将 new 运算符应用于函数时使用它,而不是任何其他对象。