js面向对象基础

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js Object</title>
</head>
<body>

</body>
<script>
    //1.简单面向对象
    var obj=new Object();
    obj.qq='12121212';
    obj.name='summer';
    obj.show=function(){
        alert('qq:'+obj.qq+'name:'+obj.name);
    };
    //obj.show();

    /*2.工厂模式
     1.原料        2.加工           3  出厂

     问题:1.没有new        2.函数重复,每个对象有一个自己的函数,会造成资源浪费,性能渐低

     */
    function creatObj(name,qq){
        var obj=new Object();    //创建对象
        obj.qq=qq;
        obj.name=name;
        obj.show=function(){
            alert('qq:'+obj.qq+'name:'+obj.name);
        };
        return obj;         //返回对象
    }
    //var obj1=creatObj('summer','1212121');   //没有new
   // obj1.show();

    //3.上述方法改进,不需要手动创建对象
    function creatObjNew(name,qq){
        //系统自动创建对象
        this.name=name;
        this.qq=qq;
        this.show=function(){
            alert(obj.name+' '+obj.qq);
        };
        //系统自动返回
    }
    var obj2=new creatObjNew('autum','111111');
  //  obj2.show();


    //3.解决函数重复 <==>原型
    //原型名词解释
    //   CSS                                        JS
    //   class        一次给一组元素加样式          原型
    //   行间样式     一次给一个元素加样式          对对象加事件

    /*例子:原型        数组求和  <==> 类和对象的使用   类可以new */

    var arr1 = new Array(12, 13, 11, 14, 53, 67, 86, 85, 23);
    var arr2 = new Array(11, 22, 33, 44, 55, 66, 77, 88);
    Array.prototype.sum=function(){    //使得arr1和arr2都有sum方法
        var result=0;
        for(var i=0;i<this.length;i++){
            result+=this[i];
        }
        return result;
    };
    //alert(arr1.sum());
   // alert(arr2.sum());

    //4.给自己的构造函数添加方法
    function creatPerson(name,age){
        this.name=name;
        this.age=age;
    }
    creatPerson.prototype.show=function(){
        alert('name:'+this.name+'age:'+this.age);
    };
    var person1=new creatPerson('wade',23);
    var person2=new creatPerson('james',24);
    person1.show();
    person2.show();

    //构造函数添加属性,原型添加方法


</script>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值