Javascript对象构造函数函数参数
我可以在构造函数函数中有一个变量而不在函数参数中吗 如下所示:Javascript对象构造函数函数参数,javascript,Javascript,我可以在构造函数函数中有一个变量而不在函数参数中吗 如下所示: function Person(name,height,weight){ this.name=name; this.height=height; this.weight=weight; this.bmi=null; this.calculateBMI = function() { if (this.bmi===null){ this.bmi = this.weight / (Math.pow(this.hei
function Person(name,height,weight){
this.name=name;
this.height=height;
this.weight=weight;
this.bmi=null;
this.calculateBMI = function()
{
if (this.bmi===null){
this.bmi = this.weight / (Math.pow(this.height,2));
}
return this.bmi;
}
}
var person1 = new Person("alayna",23, 56)
我可以要一个功能人员(姓名、身高、体重),里面有这个.bmi吗?函数如何知道这里的bmi是什么?您可以选择是否使用参数值
职能人员(姓名、身高、体重){
this.name=名称;
高度=高度;
重量=重量;
this.bmi=this.weight/(Math.pow(this.height,2));
}
Person.prototype.calculateBMI=函数(){
this.bmi=this.weight/(Math.pow(this.height,2));
返回此.bmi;
}
var person1=新人(“alayna”,23,56);
尽管如此,您可能想看看getter和setter:
这将允许您在每次更新height
或weight
时更新bmi
。例如,如果身高
或体重
发生变化,以下内容将更新体重指数
班级人员{
建造师(姓名、身高、体重){
this.name=名称;
这个。_高度=高度;
这个。_重量=重量;
this.bmi=this._体重/(数学功率(this._身高,2));
}
获得重量(){
把这个还给我;
}
设定重量(值){
这个。_权重=值;
this.bmi=值/(数学功率(this._高度,2));
}
获取高度(){
返回此项。\u高度;
}
设置高度(值){
此值为._高度=值;
this.bmi=this._权重/(数学功率(值,2));
}
}
const person1=新人('alayna',23,56);
console.log(person1.bmi);
人1.身高=25;
console.log(person1.bmi);
是的,您也可以使用其他函数作用域变量,即使用var
、let
、const
等定义。没有任何东西限制构造函数中变量的使用/定义构造函数没有什么特别之处,只是在使用new
时会自动调用它们。构造函数可以对对象执行任何其他方法可以执行的操作;this.calculateBMI=function(){if(bmi==null)..我的问题正好相反。如果我在函数参数中没有'bmi',比如Person(姓名、身高、体重),我可以在函数中包含this.bmi吗?是的,我已经更新了答案,从参数中删除了bmi