Javascript中函数中的对象
为什么需要在函数的开头创建并使用空对象(如本例中的employees)。是否有其他方法在此函数中写入此对象。这可能是个愚蠢的问题,但我是javascript的新手Javascript中函数中的对象,javascript,function,object,Javascript,Function,Object,为什么需要在函数的开头创建并使用空对象(如本例中的employees)。是否有其他方法在此函数中写入此对象。这可能是个愚蠢的问题,但我是javascript的新手 function allemployees (Firstname,Lastname,Gender,Designation) { var employee = {}; employee.Firstname = Firstname; employee.Lastname = Lastname; employe
function allemployees (Firstname,Lastname,Gender,Designation) {
var employee = {};
employee.Firstname = Firstname;
employee.Lastname = Lastname;
employee.Gender = Gender;
employee.Designation = Designation;
return employee;
}
var emp = allemployees("John", "Miller", "M", "abc");
如果我没弄错你的问题。您可以只返回对象文字,而不创建临时变量
职能所有员工(名、姓、性别、职务){
返回{
名字:名字,
Lastname:Lastname,
性别:性别,,
名称:名称
};
}
log(所有员工(“John”、“Miller”、“M”、“abc”))
首先,您的代码中有一个错误。
您声明并初始化了employees变量,并试图为尚未声明的emp变量赋值,因此出现未定义错误
试试这个
所有员工的职能(名、姓、性别、职务){
返回{“Firstname”:Firstname,“Lastname”:Lastname,“Gender”:Gender,“Designation”:Designation};
}
这将在不声明任何变量的情况下为您工作,并将返回您想要的内容
另外,我从您的评论中得到的是,您有来自其他地方的员工数据,并且希望将这些数据存储在javascript对象中。因此,在函数allemployees(..)的调用点声明并初始化employees变量
var雇员={};
员工推送(所有员工(“约翰”、“米勒”、“M”、“abc”)) 否则,您将在浏览器的控制台中出错。尝试相同的操作。您的功能将不起作用,您已初始化
员工
,但未初始化emp
。在JavaScript中,尝试为未定义对象的属性赋值是不可能的,并且会引发错误。问题中的键入(使用emp
而不是employees
)为您回答了问题:“未捕获的TypeError:无法设置未定义对象的属性'Firstname'”我建议您学习更基本的JavaScript教程和/或一本好的入门书。您必须创建对象,因为没有其他东西可以为您创建它。如果您想让函数成为构造函数(与new
一起使用),那么new
将为您创建一个对象,您可以通过此
@Rahul99在函数中访问该对象,很高兴我能帮上忙。此外,我建议您接受TJ Crowder的建议,阅读一篇关于js中OOP的教程:构造函数、原型等。