为了账号安全,请及时绑定邮箱和手机立即绑定

您好,想了解一下var name 可以动态定义吗?该怎么操作呢?

您好,想了解一下var name 可以动态定义吗?该怎么操作呢?

C# C
慕尼黑5688855 2021-10-06 17:07:50
javasctipt var name 可以动态定义吗
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

看公有的第一层意思是可以被大家所访问的,对外开放的属性,是相对于私有属性而言的:
function Person(name,age){
this.name=name;
this.age=age;
this.getName=function(){
return this.name;
}
this.getAge=function(){
return this.age;
}
}
var josh=new Person('josh','25')
console.log(josh.name); //josh
console.log(josh.getName()); //josh

我们在这里定义了一个叫josh的Person对象,让我们通过new方法再创建2个其他Person对象

var Eric=new Person('Eric','25');
var mongo=new Person('mongo','23');
console.log(Eric.name); //Eric
console.log(mongo.name); //monge
这里我们每次new一个对象的时候,Person中所有的代码都会复制一份,便造成了内存的浪费,可以通过定义同一类对象共有的方法来解决这个问题,因此在这里需要prototype关键字来我们。
从字面上来看,prototype可以理解为"property to type",即类型的属性,对于一类的属性,拿上面定义的Person来说,即对Person这一类对象共有的方法或属性,我们改造一下上面的代码

function Personwww.hnnedu.com(name,age){
this.name=name;
this.age=age;

}
Person.prototype.getName=function(){
return this.name;
}
Person.prototype.getAge=function(){
return this.age;
}

var josh=new Person('josh','25')
var Eric=new Person('Eric','25');
var mongo=new Person('mongo','23');
console.log(josh.getName()); //josh
console.log(Eric.name); //Eric
console.log(mongo.name); //monge



查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 196 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信