Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在OOP中作为参数传递参数_Javascript_Oop - Fatal编程技术网

Javascript 在OOP中作为参数传递参数

Javascript 在OOP中作为参数传递参数,javascript,oop,Javascript,Oop,我刚刚开始学习OOP。我仍在努力理解一切是如何运作的。我正在尝试创建一个新函数,它基本上允许我通过传递所述类的参数来创建一个新对象 这可能吗?如果可能,我做错了什么 如前所述,我们仍在学习,因此任何建议都将不胜感激 班级人员{ 建造师(姓名){ this.persName=名称; } 我的名字(){ 返回“我的名字是”+this.persName; } } 函数getPers(_perName,fullName){ _personName=新人员(全名); } $(文档).ready(函数(){

我刚刚开始学习OOP。我仍在努力理解一切是如何运作的。我正在尝试创建一个新函数,它基本上允许我通过传递所述类的参数来创建一个新对象

这可能吗?如果可能,我做错了什么

如前所述,我们仍在学习,因此任何建议都将不胜感激

班级人员{
建造师(姓名){
this.persName=名称;
}
我的名字(){
返回“我的名字是”+this.persName;
}
}
函数getPers(_perName,fullName){
_personName=新人员(全名);
}
$(文档).ready(函数(){
getPers(约翰,无名氏);
});

您可以按照以下示例操作。请注意,init没有太多逻辑。这个示例只是向您展示OOP是如何工作的。当然,有很多其他更好的方法可以做到这一点,但对于第一次尝试,它应该很好地使用

班级人员{
//使用必需的名称值和可选的年龄值声明构造函数
构造函数(名字,姓氏,年龄=0){
this.firstName=firstName;
this.lastName=lastName;
这个。年龄=年龄;
}
//声明一个典型的setter,例如年龄
设置(年龄){
这个。年龄=年龄;
}
//为年龄较大的人声明一个getter
getPerson(){
返回this.firstName+''+this.lastName+'是'+this.age+'岁';
}
}
//这里有一些功能,你需要定义一个新的人
函数getCreatedPerson(firstName,lastName,age=0){
//使用所需的名字和姓氏定义人员
const person=新人员(名字、姓氏);
//使用setter设置人的年龄
人.体位(年龄);
//使用person getter返回person
return person.getPerson();
}
//在这里,您可以调用createdPerson函数
$(文档).ready(函数(){
log(getCreatedPerson('John','Doe',32));
});

希望它能帮助您理解它是如何工作的。

是的,您可以将
全名
作为函数的参数,并将其传递给正在调用的OOP方法或构造函数

但是你不能像你用
\u perName
/
\u personName
那样,把“变量引用”作为参数。相反,使用
return
关键字返回创建的对象:

function createPerson(fullName) {
  return new Person(fullName);
}

$(document).ready(function() {
  var john = createPerson("John Doe");
  … // use john
});

什么是约翰?我还假设您希望从函数中
返回\u personName
。我知道你只是把它作为一个学习练习,但是仅仅有一个创建对象实例的函数是非常多余的;这是构造器的工作。我完全同意Rory的观点,你也不需要使用JQuery。仅使用JS可以获得相同的结果。