zoukankan      html  css  js  c++  java
  • js面向对象实例

    JSON方式来编写对象
    简单 不适合多个对象

    var json={a:12,
    show:function (){
    alert(this);
    }
    };
    json.show(); //理所当然弹出的是object(this指的是json)

    call函数

    function show(){
        alert(this);
    }
    show();//window
    show().call();//和上面的一样也是弹出window call()其实就是调用函数 但又和普通的函数调用有区别
    show().call(12);//alert 12而不是'this'(window) 即call可以改变函数执行时的this
    
    function show(a,b){
        alert('this是:'+this+'
    a是:'+a+'
    b是:'+b);
    }
    show(12,5);//弹出window 12 5
    show.call('abc',12,5);//只需把第一个参数变成this 后面的还是实参给形参
    var arr1=[1,2,3];
    var arr2=arr1;//这样也是引用  而不是单单的复制
    //改变方法:
    var arr3=[];
    for(var i=0;i<arr.length;i++){
         arr3.push(arr1[i]);
    }
    arr3.push(4);
    对象由属性(变量)和方法(函数)构成
    <script>
    function A(){
         this.abc=12;
    }
    A.prototype.show=function (){
          alert(this.abc);
    }
    //继承A
    function B(){
        //这个this 是指的new B()  这是处在形参位置上的哇
        A.call(this);
        //call()其实就是调用函数 但又和普通的函数调用有区别即call可以改变函数执行时的this
        //通过call来继承属性
    }
    B.prototype=A.prototype;//继承"方法"  原型这个也是引用!(c语言里的值传递啊引用传递啊) (下面改正)
    B.prototype.fn=function (){
        alert('abc');
    }
    
    var objB=new B();
    var objA=new A();
    alert(obj.abc);//12
    obj.show();
    objA.fn();//弹出了对象 按理来说A是没有这个方法的 但是call()这个是引用传递
    </script>
    //改正方法:
         for(var i in A.prototype){
             B.prototype[i]=A.prototype[i];
         }

    1.return false可以用来阻止默认事件即系统默认事件。例如通过阻止默认事件,来对textarea中的值进行范围限制(通过限制keycode的数值),
    也可以自定义在页面中的右键菜单(oncontextmenu)。
    (<textarea>标签定义及用法
    在html中,<textarea>标签是用来定义一个多行的文本输入控件,在文本输入域中可以输入任意长度的文本。文本默认字体是等宽字体(Courier),可以通过css来改变。
    在实际应用中,一般会通过cols属性和rows属性来设置textarea控件的尺寸大小(使用 css的height和width属性来设置更佳)。
    cols 规定文本区域内可见的宽度 rows 规定文本区域内可见的行数。超行就上滚动条overflow <textarea style="overflow-x:hidden"></textarea>
    )
    2.在鼠标移动(mousemove)等事件中,是需要给事件传一个参数,保证程序的正常运行。而为了兼容取事件方法为:var oEvent=ev||event;
    4、取消事件冒泡(不往父级传递): cancelBubble用于ie的阻止冒泡事件,event.stopPropagation()用于firefox和chrome等其他浏览器。
    5、事件绑定:同一个事件加多次函数会被覆盖,而绑定不会。
    IE方式:
    attachEvent(‘’事件名‘’(前面加有on的),函数)绑定事件处理函数。
    detachEvent(‘’事件名‘’(前面加有on的),函数)解除绑定。
    DOM方式:
    addEventListener(事件名称(没有on),函数,捕获(一般都为false))
    aremoveEventListener(事件名称(没有on),函数,捕获(一般都为false))
    可以同时加很多事件而不相互影响。并且可以封装为函数function(obj,ev,fn)
    兼容如下:
    if (obtn.attachEvent){IE}else{FF}.

    事件捕获:setcapture()将事件都集中在一个地方,但是只有IE支持。

    系统对象:
    1.本地对象(非静态对象)(和环境无关)
    什么是本地对象 (必须得new出来 得实例化之后才能用)
    常用对象
    Object、Function、Array、String、Boolean、Number、Date、RegExp、Error
    2.内置对象(静态对象)(和环境无关)
    (eg:Math.ceil() √ var obj=new Math() X 事实上Math只用他的类上的方法 )(不需要new出来 不需要实例化 直接就能拿来用的 叫静态对象)
    Global、Math
    3.宿主对象(由浏览器提供的对象)宿主:js运行环境(一般就是浏览器)
    DOM、BOM

  • 相关阅读:
    USACO3.4.3Electric Fence
    (转)《算法艺术与信息学竞赛》题目 提交方式对照表
    UVA10382 Watering
    SGU104 Little shop of flowers
    UVA10673 Play with Floor and Ceil
    SGU123 The sum
    SGU106 The equation
    SGU105 Div 3
    UVA10905 Children's Game
    SGU101 200分类
  • 原文地址:https://www.cnblogs.com/yundong333/p/10469489.html
Copyright © 2011-2022 走看看