• javascript prototype与OOP笔记


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>prototype与OOP</title>
        <script type="text/javascript">
            //-------------------------------------------01 Object
            var obj = new Object();
            obj.name = 'Angle';
            obj.qq = '13123265';
            obj.showName = function(){
                alert('my name is ' + this.name);
            };
            obj.showQQ = function(){
                alert('my qq is ' + this.qq);
            };
            //obj.showName();
            //obj.showQQ();
    
            //-------------------------------------------02 Object工厂方式(一般不用)
            //缺陷:每一对象都有一套自己的属性和方法,函数重复,资源浪费 alert(obj1.showName == obj2.showName)--false
            function createPerson(name,qq)
            {
                //原料
                var obj = new Object();
                //加工
                obj.name = name;
                obj.qq = qq;
                obj.showName = function(){
                    alert('my name is ' + this.name);
                };
                obj.showQQ = function(){
                    alert('my qq is ' + this.qq);
                };
                //出厂
                return obj;
            }
            var obj1 = createPerson('guo','1313298765');
            var obj2 = createPerson('jiang','2313298765');
            //obj1.showName();
            //obj2.showQQ();
    
            //-------------------------------------------03 Object 工厂方式 new方式
            function createPerson2(name,qq)
            {
                //var this = new Object();系统偷偷做
                this.name = name;
                this.qq = qq;
                this.showName = function(){
                    alert('my name is ' + this.name);
                };
                this.showQQ = function(){
                    alert('my qq is ' + this.qq);
                };
                //return this;系统偷偷做
            }
            var obj3 = new createPerson2('guo','1313298765');
            var obj4 = new createPerson2('jiang','2313298765');
            //obj3.showName();
            //obj4.showQQ();
    
            //-------------------------------------------04 Object 原型prototype
            //CSS                                JS
            //class  一次给一组元素加样式       原型
            //行间样式 一次给一个元素加样式      给对象加事件
            var arr1 = new Array(1,2,3,4,5,6);
            var arr2 = new Array(11,12,13,14,15,16);
            Array.prototype.mySum = function () {
                var result = 0;
                for(var i=0;i<this.length;i++)
                {
                    result += this[i];
                }
                return result;
            };
            //alert(arr1.mySum());
            //alert(arr2.mySum());
    
            //-------------------------------------------05 Object 原型+new混合方式(日常基本都这样写)
            //在构造函数里面加属性,在原型里面加方法
            //构造函数名就是自定义类名,所以首字母最好大写
            function CreatePerson3(name,qq)
            {
                this.name = name;
                this.qq = qq;
            }
            CreatePerson3.prototype.showName = function(){
                alert('my name is ' + this.name);
            };
            CreatePerson3.prototype.showQQ = function(){
                alert('my qq is ' + this.qq);
            };
            var obj5 = new CreatePerson3('guo','1313298765');
            var obj6 = new CreatePerson3('jiang','2313298765');
            alert(obj5.showName==obj6.showName);                    //true 节省资源
        </script>
    </head>
    <body>
    </body>
    </html>
    工欲善其事 必先利其器
  • 相关阅读:
    上有传参下传json的接口调用
    通过群号,获取到群成员信息,下载头像到指定文件夹
    django模型 之 Meta
    k8s 日志的收集
    systemctl 管理服务
    安装JumpServer
    1 nginx的配置详解
    十六 RBAC
    python3 与linux间的小知识
    解决问题:OSError: mysql_config not found
  • 原文地址:https://www.cnblogs.com/fengyouqi/p/7767510.html
Copyright © 2020-2023  润新知