这两种构造有什么区别?
function ObjectName()
{
this.member1 = "foo"; // #1
ObjectName.member2 = "baz"; #2
}
是说同一件事的两种方式,还是成员宣布第二种方式具有某些不同的属性?在继承的对象上,它的工作方式是否不同?
最佳答案
它做两件事。
this.member1 = "foo":
在使用new调用时,在创建的对象实例上设置member1属性
new ObjectName().member1 === 'foo';
在功能上设置属性只能在功能对象上设置
ObjectName.member2 = 'baz';
ObjectName.member2 === 'baz';
myObjInstance.member2 === undefined
这是因为function关键字确实设置了一个变量,它是以下各项的简写形式:
var ObjectName = function() {
作为对象,您可以设置所需的任何属性,但只能在该对象本身上。
关于javascript - 通过此/类名的Javascript成员访问器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22308196/