Javascript 在另一个对象内从对象调用函数

Javascript 在另一个对象内从对象调用函数,javascript,javascript-objects,Javascript,Javascript Objects,我有个问题。我得到了一个->bmi:function{带有一些代码},这是objectmethod中的一个函数。我想将它声明为另一个对象,只是名称为-bmi,所以我不会重复我自己 var John={ 全名:约翰, 质量:74, 身高:1.75, bmi:功能{ 返回this.mass/this.height+this.height; } } var Mike={ 全名:迈克, 质量:90, 身高:1.95, John.bmi; } 为什么不好好玩并创建一个构造函数呢 function Per

我有个问题。我得到了一个->bmi:function{带有一些代码},这是objectmethod中的一个函数。我想将它声明为另一个对象,只是名称为-bmi,所以我不会重复我自己

var John={ 全名:约翰, 质量:74, 身高:1.75, bmi:功能{ 返回this.mass/this.height+this.height; } } var Mike={ 全名:迈克, 质量:90, 身高:1.95, John.bmi;
} 为什么不好好玩并创建一个构造函数呢

function Person(data){
   var self=this;
   self.fullName= data.fullName;
   self.mass= data.mass;
   self.height= data.height;
   self.bmi= function(){
        return self.mass / self.height + self.height;
    }

    return self;
}

var john = new Person({fullName : 'john', mass : 70, height: 1.70})
var marios = new Person({fullName : 'Marios', mass : 60, height: 1.70})

console.log(john.bmi())
console.log(marios.bmi())

在对象文本中声明键值对时,需要key.bmi:John.bmi。虽然这不是首选方法..解决了我的问题,但你能告诉我为什么不首选这种方法吗?谢谢你:我还没有了解构造函数,所以我不能使用它们,但是谢谢你:
function Person(data){
   var self=this;
   self.fullName= data.fullName;
   self.mass= data.mass;
   self.height= data.height;
   self.bmi= function(){
        return self.mass / self.height + self.height;
    }

    return self;
}

var john = new Person({fullName : 'john', mass : 70, height: 1.70})
var marios = new Person({fullName : 'Marios', mass : 60, height: 1.70})

console.log(john.bmi())
console.log(marios.bmi())