Javascript 在警报窗口中从对象打印值

Javascript 在警报窗口中从对象打印值,javascript,object,alert,Javascript,Object,Alert,我正在尝试在警报窗口中打印person对象的名称值 var person ={}; person = { name: 'Tray', distance_travelled: 0, say_name: alert(this.name), } person.say_name; 我得到的结果是一个空的警报框。当我在名称中硬编码时,警报框将正确打印。我试图说_nam

我正在尝试在警报窗口中打印person对象的名称值

        var person ={};
        person = {
            name: 'Tray',
            distance_travelled: 0,
            say_name: alert(this.name),
        }

        person.say_name;

我得到的结果是一个空的警报框。当我在名称中硬编码时,警报框将正确打印。我试图说_name:alert(person.name),但它返回一个未定义的值。我做错了什么?

您需要将一个函数分配给
say_name
。现在,您正在立即调用该函数并分配其
undefined
返回值。这使得
这个
指的不是你所期望的

var-person={
名称:'托盘',
行驶距离:0,
说出你的名字:函数(){
警报(此名称);
},
}
person.say_name()