javascript构造函数
代码: (一) 但我想知道为什么我可以创造一个新的人使用:javascript构造函数,javascript,object,Javascript,Object,代码: (一) 但我想知道为什么我可以创造一个新的人使用: var p2=new Person(); //no error 没有类似以下的构造函数: function Person(){} 为什么? (二) 这与1)的方式有什么区别?如果不将参数传递给函数,它们将在函数内部未定义。您可以向函数传递任意数量的参数,只需输入名称即可 第二个版本中唯一的区别是定义了两个不使用的局部变量,并且对属性进行了不同的命名。请注意,var\u name与this不同。\u name如果不将参数传递给函数,它
var p2=new Person(); //no error
没有类似以下的构造函数:
function Person(){}
为什么?
(二)
这与1)的方式有什么区别?如果不将参数传递给函数,它们将在函数内部
未定义。您可以向函数传递任意数量的参数,只需输入名称即可
第二个版本中唯一的区别是定义了两个不使用的局部变量,并且对属性进行了不同的命名。请注意,var\u name
与this不同。\u name
如果不将参数传递给函数,它们将在函数内部未定义。您可以向函数传递任意数量的参数,只需输入名称即可
第二个版本中唯一的区别是定义了两个不使用的局部变量,并且对属性进行了不同的命名。请注意,var\u name
与this不同。\u name
1)函数在Javascript中可以接收的参数数量不一定相等。在这种情况下(p2),它们将是未定义的
2) 您正在使用var\u name、\u age;声明2个“私有”(仅本地)变量。。如果您没有在该范围内使用它们,那么就没有必要了。1)函数在Javascript中可以接收的参数数量并不一定要相等。在这种情况下(p2),它们将是未定义的
2) 您正在使用var\u name、\u age;声明2个“私有”(仅本地)变量。。如果您没有在该范围内使用它们,那么就没有必要了。那么您是说函数Person(name,age){this.name=name//不等于_name=name}?区别是什么?var\u name
创建一个局部变量。它将无法从功能外部访问this.\u name
在使用new Person()创建的对象上创建属性。请看一个示例:因此,没有必要对属性_name进行decare,只需使用此属性。_name=name,则Person的实例将具有此属性?@hguser:Yes。这是唯一的申报方式。否则(使用var
)您只需像在普通函数中一样创建一个局部变量。那么您是指函数Person(name,age){this.name=name//not equal with _name=name}?区别是什么?var\u name
创建一个局部变量。它将无法从功能外部访问this.\u name
在使用new Person()创建的对象上创建属性。请看一个示例:因此,没有必要对属性_name进行decare,只需使用此属性。_name=name,则Person的实例将具有此属性?@hguser:Yes。这是唯一的申报方式。否则(使用var
)只需创建一个与普通函数类似的局部变量。
function Person(){}
function Person(name,age){
var _name,_age;
this._name=name;
this._age=age;
}
var p=new Person('stack',100);
console.dir(p);