js面向对象以及this问题

面向对象

一、封装


总结
        属性继承
            子类的构造函数中
                父类.call(this,arg1,arg2...);
                或者
                父类.apply(this,[arg1,arg2...]);
                或者
                父类.apply(this,arguments);
        方法继承
            子类.prototype = new 父类();
            子类.prototype.constructor = 子类;

二、继承

1.选项卡

//直接写方法;
        function Tab(id){
            this.oBox=document.getElementById(id);
            this.aBtn=this.oBox.getElementsByTagName('input');
            this.aDiv=this.oBox.getElementsByTagName('div');

            var iNow=0;
            this.init();//引用方法
        }
        Tab.prototype.init=function(){
            var _this=this;
            for(var i=0; i

2.拖拽

      
    

this的一些问题

this具体是什么?不看定义,看调用。
1.优先级

         
        高
            new             object
            定时器             window
            事件 /方法      事件/方法所属于的对象(事件和方法都是一类,可以算平级)
            正常调用        window||undefined
        低

2.只管一层
function show(){
            alert(this);
        }
        var arr = [1,2,3];
        arr.show = show;
        //setTimeout(arr.show,1);
        setTimeout(function(){
            //alert(this);
            //new arr.show();
            arr.show();
        },1);       /*按上面的优先级应是window,现在套了一层就变成字符串了,
                    这例子可以看出,this只管一层。*/
        
        //document.onclick=show;              //document
        /*document.onclick = function(){
            //alert(this);
            //arr.show();
            show();
        };                                  //window
        document.onclick();                 //window*/
        //现象同上,this只管一层
3.只看最后一层

三、最后在来说说一些小玩意

1.原型链


2.找一个值在数组中的位置

Array.prototype.indexOf=function(item){
            //存变量是为了提高性能
            var len=this.length;//this就是他自己
            for(var i=0; i

3.去空格


4.获取当天星期


你可能感兴趣的:(js面向对象以及this问题)