Javascript 如何在JS中引用当前对象的属性

Javascript 如何在JS中引用当前对象的属性,javascript,object,Javascript,Object,可能重复: 我在JS中有一些简单的对象,如以下示例: var object = { firstname : 'john', lastname : 'paul', wholename : firstname + lastname } 这个简单的东西不起作用;john和paul在wholename中未定义,因此我尝试使用“this”运算符,该运算符仅在我执行函数(getWholeName(){返回this.firstname+this.lastname})时有效。 但是如果我想使用变量而不

可能重复:

我在JS中有一些简单的对象,如以下示例:

var object = {
 firstname : 'john',
 lastname : 'paul',
 wholename : firstname + lastname
}
这个简单的东西不起作用;john和paul在wholename中未定义,因此我尝试使用“this”运算符,该运算符仅在我执行函数
(getWholeName(){返回this.firstname+this.lastname})
时有效。
但是如果我想使用变量而不是函数,我该怎么做呢?我还尝试了
object.firstname+object.lastname
,但不起作用。

无法引用对象,但您可以动态添加属性:

var object = { 
    firstname : 'john', 
    lastname : 'paul'
};

object.wholename = object.firstname + object.lastname;
编辑:

为什么不把它包装成一个函数呢

var makePerson = function (firstname, lastname) {
    return {
        firstname: firstname,
        lastname: lastname,
        wholename: firstname + lastname  // refers to the parameters
    };
};

var object = makePerson('john', 'paul');

在Javascript中,每个函数都是一个对象。您应该将对象的构造函数声明为如下函数:

function person(firstname,lastname)
{
this.firstname=firstname;
this.lastname=lastname;

this.wholeName=wholeName;

 //this will work but is not recommended.
 function wholeName()
 {
 return this.firstname+this.lastname;
 }
}
您也可以通过原型化向对象添加额外的方法,这是推荐的方法。更多信息请点击此处:


好的,谢谢。我之所以这样做是因为我正在构建一个巨大的web应用程序,试图在其中包含一个组织良好的代码;所以我决定在这样的对象中重新组合类似的函数和变量。这样做对吗?我知道TypeScript和模块,但我需要使用TS来实现像函数/变量组这样简单的功能吗?@user1397271您可以在简单的JS中实现这一点:尝试引入名称空间(比如var MYAPP={};MYAPP.data=…),并尝试将大函数分解为小函数。考虑使用模块模式:当你说命名空间像var MyAPP={},这意味着它与我的例子一样,var对象= {},所以我会遇到我问的问题吗?@ USER1392171是的,如果你需要同时引用你所定义的东西,它就可以了。但是库可以帮助实现这一点,也就是说,如果一切都是一个函数……这是什么?=>
var obj={1:1,2:2}
?你是对的,但是每个函数都是一个对象。这就是我的意思。我纠正了:)你是从学校或其他网站上剽窃的吗?