JavaScrip--JS面向对象

一:jsOOP.js文件的编写如下:
var person={
    name:"ymt",
    age:26,
    eat:function(){
        alert("我喜欢吃米饭");
    }
}

alert("名字:"+person.name);
//这是使用函数式的方式构造对象
function personone(){

}
personone.prototype={
    name:"ymt",
    age:26,
    eat: function () {
        alert("I eat rice");
    }
}
var p=new personone();
alert(p.eat);

二:jsOOP2.js文件的编写如下:
这个文件里面牵涉到
1、封装
2、继承
3、子类重写父类的方法
4、子类调用父类的方法
代码编写如下:
(function(){
    function people(name){
        this._name=name;
    }

    people.prototype.print=function(){
        alert("people--hello");
    }
    people.prototype.printname=function(){

    }
    window.people=people;//必须使用这种方式提供一个开放的接口
}());//使用这种方式实现封装,注意:不要忘记这个分号

(function(){
    function student(){

    }
//实现了继承
    student.prototype=new people("ymt");

//实现调用父类的方法
    var peo_print=people.prototype.print;
//现在我们要定义自己的一个方法,方法的重写
    student.prototype.print=function(){
        //调用父类的方法
        peo_print.call(this);

        alert("student--hello"+this._name);//这个this._name实际上是继承了父类people的一个字段
    }
    window.student=student;//必须使用这种方式提供一个开放的接口
}());//使用这种方式实现封装,注意:不要忘记这个分号
var s=new student();
s.print();

三:jsOOP2.js文件的编写如下:
这是另一种方式实现的
1、封装
2、继承
3、子类重写父类的方法
4、子类调用父类的方法
(function(){

   function people(){
       var _this={}
       _this.print=function(){
           alert("people");
       }
       return _this;
   }

    window.people=people;
}());

(function(){

    function student(){
        var _this=people();

        var peo_print=_this.print;

        _this.print=function(){

            peo_print.call(this);

            alert("student");
        }

        return _this;
    }

    window.student=student;
}());

var s=new student();
s.print();

四:使用
<body>
//<script src="jsOOP.js">
//</script>
//<script src="jsOOP2.js">
//</script>
<script src="jsOOP3.js">
</script>
</body>

posted @ 2015-10-10 15:43  杨MT  阅读(179)  评论(0编辑  收藏  举报