-1
什么区别有在JavaScript差别新的Foo(
function createFoo(){
var _foo = { id: 1 };
return _foo;
}
var foo = createFoo();
和
function Foo(){
this.id = 1;
}
var foo2 = new Foo();
什么区别有在JavaScript差别新的Foo(
function createFoo(){
var _foo = { id: 1 };
return _foo;
}
var foo = createFoo();
和
function Foo(){
this.id = 1;
}
var foo2 = new Foo();
创建对象运行的代码通过以下两种方式之间在镀铬控制台给我们更多的信息2变量的内容:
> foo
Object {id: 1}
> foo2
Foo {id: 1}
所以有一个区别。 扰流警报!答案就在原型链:
> foo.__proto__
Object {}
> foo2.__proto__
Foo {}
如果您需要更多的细节,请参见本伟大的职位:https://stackoverflow.com/a/3658673/2523414
中有实例被创建并从这些函数访问的对象的方式很多型动物。例如:
function createFoo(){
var _foo = { id: 1 };
return _foo;
}
var foo = createFoo();
如果你想获得id
财产的价值,你必须遍历在Foo对象的属性,如:
for(var prop in foo){
//if you want to set new value then
foo[prop] = 5;
//then getting value is like this
console.log(foo[prop]);
}
在你的第二个例子是在方式不同获得/设定值:
function Foo(){
this.id = 1;
}
var foo2 = new Foo();
foo2.id = 2;//set new value
console.log(foo2.id);
这就是我能想到的。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new – thgaskell 2014-11-22 00:41:47
[JavaScript中有什么'new'关键字?](http:// stackoverflow .COM /问题/ 1646698 /什么 - 是最新的关键字在JavaScript的) – Mathletics 2014-11-22 00:51:59