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

为什么需要在函数的开头创建并使用空对象(如本例中的employees)。是否有其他方法在此函数中写入此对象。这可能是个愚蠢的问题,但我是javascript的新手

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的教程:构造函数、原型等。