JS 简单原型对象

<!-- ————————JS简单原型 ———————— -->
function Person(){};
Person.prototype={
//constructor:Person,//必须加上 表示原型对象的构造函数
name:"Z3",
age:"20",
job:"人才",
say:function(){
alert("简单原型");
}
};
//ECMN5 给原型对象重新设置构造函数definePropery(IE8/FF4++);
Object.defineProperty(Person.prototype,'constructor',{
enumerable:false,
value:Person
});
alert(Person.prototype.constructor);
<!-- ————————JS 原型的动态特性 ———————— -->
function User(){};
var user2=new User();//
User.prototype={
name:"111",
say:function(){alert(this.name)
}
};
var user=new User();//
user.say();
user2.say();//报错

 

 

<!-- ————————JS标准使用原型对象(组合原型+构造函数) ———————— -->
function Person(name,age,friends,job){
this.name=name;
this.age=age;
this.friends=friends;
this.job=job;
}
Person.prototype={
constructor:Person,
sayName:function(){alert(this.name);}
}
var p1=new Person("张三",20,["A","B"],"IT");
alert(p1.friends);
<!-- ————————JS标准使用原型对象(动态原型模式) ———————— -->
function Person1(name,age,friends,job){
this.name=name;
this.age=age;
this.friends=friends;
this.job=job;
if(typeof this.sayName!="function"){
Person.prototype.sayName=function(){
alert(this.name);
}

 

}
}
<!-- ————————JS标准使用原型对象(稳妥构造函数式 durable Object 适用于非常安全的环境) ———————— -->
//特点 没有公共属性 不能使用this对象
function Person2(name,age){
//创建一个返回对象
new obj=new Object();
var name=name;
//定义私有属性
var sex="男";
var saysex=function(){
};
//定义方法(通过方法访问var name 属性)
obj.sayName=function(){
alert(name);
}
return obj;
}

 

你可能感兴趣的:(js)