//prototype 原型
String.prototype.caifen=function(){
alert(111);
}
var a='cc';
a.caifen();
setInterval();
1.构造函数
function Person(){
}
//2.原型对象
var obj=Person.prototype;
obj.name='zs';
obj.age=18;
obj.sayName=function(){
alert('我是');
}
3.实例对象
var p1=new Person();
alert(p1.name);
1.构造函数,原型对象,实例对象 三者之间的关系
//所有的实例对象可以去访问原型中的属性和方法
构造函数.prototype=原型对象
构造函数.prototype.constructor=构造函数:Person.prototype.constructor
//判断传进去的实例对象是不是某个原型的实例:
原型对象.isPrototype:alert(obj.isPrototypeOf(p1););
*******************************************************************************************************
//简单原型的使用方法
构造函数+原型实现的类
//父类
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
//原型对象
Person.prototype.sayName=function(){
alert(this.name);
}
Person.prototype.sayAge=function(){
alert(this.age);
}
var p1=new Person('zhangsan',20,'男');
var p2=new Person('zs',21,'男');
alert(p1.name)
alert(p2.name)
p1.sayName();
p2.sayName();
闭包:闭包就是可以读取其他函数内部的变量
****************************************************************************
原型继承
//父类
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
Person.prototype.sayName=function(){
alert(this.name);
}
//子类
function Son(sex){
this.sex=sex;
}
//原型继承 :让子类的原型对象 = 父类的实例
Son.prototype = new Person('zhangsan',18);
var p1=new Son();
alert(p1.name);
//借用构造函数式继承
//只继承我们的模板,不继承原型对象
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
Person.prototype.sayName=function(){
alert(this.name);
}
//子类
function Son(name,age,sex){
this.sex=sex;
}
var p1=new Son('zhangsan',18,'男');
alert(p1.name);
************************************************************
//组合继承
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
Person.prototype.sayName=function(){
alert(this.name);
}
//子类
function Son(name,age,sex){
Person.call(this,name,age);
this.sex=sex;
}
Son.prototype=new Person();
var p1=new Son('zhangsan',18,'男');
alert(p1.name);
String.prototype.caifen=function(){
alert(111);
}
var a='cc';
a.caifen();
setInterval();
1.构造函数
function Person(){
}
//2.原型对象
var obj=Person.prototype;
obj.name='zs';
obj.age=18;
obj.sayName=function(){
alert('我是');
}
3.实例对象
var p1=new Person();
alert(p1.name);
1.构造函数,原型对象,实例对象 三者之间的关系
//所有的实例对象可以去访问原型中的属性和方法
构造函数.prototype=原型对象
构造函数.prototype.constructor=构造函数:Person.prototype.constructor
//判断传进去的实例对象是不是某个原型的实例:
原型对象.isPrototype:alert(obj.isPrototypeOf(p1););
*******************************************************************************************************
//简单原型的使用方法
构造函数+原型实现的类
//父类
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
//原型对象
Person.prototype.sayName=function(){
alert(this.name);
}
Person.prototype.sayAge=function(){
alert(this.age);
}
var p1=new Person('zhangsan',20,'男');
var p2=new Person('zs',21,'男');
alert(p1.name)
alert(p2.name)
p1.sayName();
p2.sayName();
闭包:闭包就是可以读取其他函数内部的变量
****************************************************************************
原型继承
//父类
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
Person.prototype.sayName=function(){
alert(this.name);
}
//子类
function Son(sex){
this.sex=sex;
}
//原型继承 :让子类的原型对象 = 父类的实例
Son.prototype = new Person('zhangsan',18);
var p1=new Son();
alert(p1.name);
//借用构造函数式继承
//只继承我们的模板,不继承原型对象
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
Person.prototype.sayName=function(){
alert(this.name);
}
//子类
function Son(name,age,sex){
this.sex=sex;
}
var p1=new Son('zhangsan',18,'男');
alert(p1.name);
************************************************************
//组合继承
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
Person.prototype.sayName=function(){
alert(this.name);
}
//子类
function Son(name,age,sex){
Person.call(this,name,age);
this.sex=sex;
}
Son.prototype=new Person();
var p1=new Son('zhangsan',18,'男');
alert(p1.name);