/***我是分割线 的开始***/
//利用prototype属性可以添加公有属性和方法
function myConstructor2(){
this.a='大灰狼';
}; //声明构造函数,可以使用对象字面量语法来向prototype属性中添加所有公有成员
myConstructor2.prototype={
propertyA: 'sha' ,
propertyB: 'feng' ,
methodA:function(){
alert(this.propertyA);
},
methodB:function(){}
}
var myconstrustor=new myConstructor2(); //声明对象
//alert(myconstrustor.methodA());
var myconstrustor1=new myConstructor2(); //声明对象
var myconstrustor2=new myConstructor2(); //声明对象
alert("原型类测试结果="+(myconstrustor1.propertyB === myconstrustor2.propertyB));
alert("构造函数测试结果="+(myconstrustor1.a === myConstructor2.a));
/***我是分割线 的结束***/
function member(name, sex) {
this.name = name;
this.sex = sex;
this.display = display;
}
function display() {
var str = this.name + "是" + this.sex;
document.write("<LI>" + str);
}
var papa = new member("杨宏文", "男生");
var mama = new member("黄雅玲", "女生");
var doggy = new member("奇 奇", "宠物狗");
papa.display();
mama.display();
doggy.display();
/*
*/
总结
4.可以总结出几条规律:
1 :当实例本身定义了属性,使用本身属性(可以使用 hasOwnProperty 进行判断);2:如果实例本身没有定义,就到构造函数中去找;
3:如果构造函数也没有,就到构造函数的prototype的实例对象上去找;
4:如果prototype的实例对象没有,就到其构造函数去找;
5:如此重复,一直到跟对象object中,没找到就报undefined错误。