/*
私有属性 : 在对象的定义中定义的非全局变量
实例属性 : 使用this为对象附加实例属性/对象名称.属性名
类属性 : "类"名.属性名/类名.prototype.属性名
*/
//私有属性 : 在对象的定义中定义的非全局变量
//私有方法
私有属性 : 在对象的定义中定义的非全局变量
实例属性 : 使用this为对象附加实例属性/对象名称.属性名
类属性 : "类"名.属性名/类名.prototype.属性名
*/
//私有属性 : 在对象的定义中定义的非全局变量
function Person(firstName,lastName){
var name=firstName+" "+lastName;
this.getFullName =function(){
return name;
}
}
var person=new Person("Si" ,"Li");
alert(person.getFullName());
alert(person.name); //undefined
//实例属性
function Person(name,sex,num){
this.name=name;
this["sex"]=sex;
this[50]=num;
}
var person1=new Person("lisi","男",11);
person1.age=22;
alert(person1.name);//lisi
alert(person1["sex"]);//男
alert(person1[50]);//11
alert(person1.age);//22
var person2=new Person("zhangsan","女",15);
alert(person2.name);//zhangsan
alert(person2["sex"]);//女
alert(person2[50]);//15
alert(person2.age);//undefined
//类属性
function Person (){};
Person.name="lisi";//这种方式定义的属性,类的实例不能访问;只能通过 类名.属性名访问
alert(Person.name)
var person3=new Person("lisi");
var person4=new Person('zhangsan');
alert(person3.name);//undefined
alert(person4.name);//undefined
function Person (){};
Person.prototype.name="lisi";//这种方式定义的属性,只能通过类的实例访问.不同实例之间共享该属性;不能通过 类名.属性名的方式访问
alert(Person.name);//undefined
var person5=new Person();
var person6=new Person();
alert(person5.name);//lisi
alert(person6.name);//lisi
/------------------------ 方法(和属性一致) ------------------------/
//私有方法
function Person(){
function sayHi(){
alert('Hi');
}
this.sayHello=sayHi;
}
var person1=new Person();
person1.sayHello();//Hi
person1.sayHi();//对象不支持此属性或方法
//实例方法
function Person(name,sex,num){
this.sayHello=function(){alert("Hello "+name);};
this["sex"]=function(){alert(sex)};
this[50]=function(){alert(num)};
}
var person2=new Person("lisi","nan",40);
person2.sayHello();//lisi
person2["sex"]();//nan
person2[50]();//40
var person3=new Person("zhangsan","nv",22);
person3.sayHello();//zhangsan
person3["sex"]();//nv
person3[50]();//22
//类方法
function Person(){};
Person.sayHi=function(){alert("hi")};//这种方式定义的属性,类的实例不能访问;只能通过 类名.方法名访问
var person4=new Person();
Person.sayHi();//hi
person4.sayHi();//对象不支持此属性或方法
function Person (){};
Person.prototype.sayHi=function(){alert("hi")};//这种方式定义的属性,只能通过类的实例访问.不同实例之间共享该属性;不能通过 类名.属性名的方式访问
var person5=new Person();
var person6=new Person();
person5.sayHi();//hi
person6.sayHi();//hi
Person.sayHi();//对象不支持此属性或方法