创建对象
var person = new Object; 创建对象
person.name=“张三”;
person.age=23;
peron.say=function(){
alter( this.name"在说话") //this.name表示调用当前对象的name
} 如果没有this代表的是全局变量的name;
使用字面量赋值方式创建对象
var person={
name=“张三”;
age=14;
showname: funciton (){
alter(this.name);
}
}
构造方法//构造函数:解决代码重复使用 函数名称首字母大写如Person
function Person(name,age,){
this.name=name;
this.age=age
this.say=function(){
alter(this.name)
}
}
创建对象
var p1=new Person("zs""23") p1.say()'
var p2=new Person("zs""23") p2.say()'
var p3=new Person("zs""23") p3.say()'
construct属性;判断当前对象的直接指向
alert(flower1.constructor==Flower);
返回值为true或者false
instanceof 检测对象类型
检测该对象是否是其对象的子级包括继承
alert(flower1 instanceof Object);
原型对象
每个函数都有一个prototype属性,该属性指向 一个对象,该对象被称为原型对象
原型对象是共有的
person.prototype.name="zsd"
Humans.prototype.getFoot=function(){
return this.foot;
}
对象继承
function Person(){
this.name="张三";
this.chinese=80;
this.math=95;
this.rtuName=function(){
return this.name;
}
this.rtuChinese=function(){
return this.chinese;
}
this.rtuMath=function(){
return this.math;
}
}
function Student(){
this.age=23;
this.rtuAge=function(){
return this.age;
}
}
Student.prototype=new Person();
var p=new Student();
借用构造方法
call([thisObj[,arg1[,arg2[, [,argN]]]]]) 相当于将一个构造方法里的属性 放到另一个构造方法里面去
function Humans(name){
this.name=name;
}
function Man(){
Humans.call(this,"mary"); //继承了Humans,同时还传递了参数
this.age=38; //实例属性
}
var man1=new Man();
alert(man1.name); //输出mary
alert(man1.age); //输出38