web階段の二十四:Jsは対象と対象を内蔵しています.

7842 ワード

オブジェクトを内蔵
  • document-document.referrer/前のジャンプページのアドレスを取得する(サーバ環境が必要)
  • location-window.locations.href/取得またはリセットurlアドレス-window.locations.search/取得アドレスパラメータ部分-window.locations.hash/ページアンカーまたはハッシュ値
  • Math-Math.randomは0-1の乱数を取得します.Math.florは下に整理します.Math.ceirは上に上げて
  • を整理します.
    document
    上記のdocumentは比較的熟知しています.document.write()はページ全体に内容を書きます.ここのdocument.referrerは前のジャンプ先のアドレスを取得するために使います.例えば、私たちは電子商取引サイトに登録していますが、登録していないと商品を購入しています.購入する時は登録が必要です.登録が完了してから前のページにジャンプします.このような操作です.
    
    
    
        
              
        
            //                
            var backUrl = document.referrer;
            //      
            //              
            window.location.href = backUrl;
        
    
    
        baidu
    
    
    
    location
    上に私達はもう一つのwindow.location.hrefを使いました.
    urlアドレスの取得またはリピート
    第二に、パラメータの部分を取得します.前にフォームを講義した時に、入力した値をアドレスに送ります.そのサイトではユーザーの情報や他の何かを受け取ります.window.location.searchを通じて入手できます.
    
    
    
        
               
        
    
            window.onload = function(){
                //      ?      
                //url?aa=tom#12 (  )
                var data = window.location.search;//?aa=tom
                var hash = window.location.hash;//#12
                alert(hash);//#12
    
                var oSpan = document.getElementById('span01');
                // alert(data);//?aa=tom
    
                var arr = data.split('=');
                // alert(arr);//?aa,tom
                //         
                var name = arr[1];
                oSpan.innerHTML = name;//      
            }
        
    
    
        
    上のコードにも書いてあります.ページのアンカーポイントを取得したり、ハッシュ値を呼んだりします.例えば、オンラインで本を読んだり、保存したりして、ウェブページをクリックして、アンカーポイントを取得します.今度はこのアンカーポイントを通じて、私たちが見た部分を再発見することができます.
    Math
    一つは数学の方法を内蔵して、いくつかの操作を実現することができます.
    
    
    
        
        Math
        
            // var num = Math.random();
            // alert(num);//  0-1      
            var a = 10;
            var b = 20;
            // var num = Math.random()*(b-a)+a;
            // alert(num);//  10-20      
            var arr = [];
            for(var i=0; i<20; i++){
                // var num = Math.floor(Math.random()*(b-a)+a);//    ,10-19
                var num = Math.floor(Math.random()*(b-a + 1)+a);//    ,10-20
                
                arr.push(num);//          
            }
            alert(arr);//17,20,20,11,11,19,17,16,10,11,16,11,18,13,13,11,17,14,19,19
        
    
    
        
    
    
    
    対象に向ける
    いくつかの概念を理解する:
    プロセスとオブジェクト指向プログラミング
    相互の、共同の存在です.
    1、プロセスに向かって:すべての仕事は現在書きます.
    2、対象に向かって:プログラミング思想で、多くの機能は事前に作成されています.使用する時、機能の運用だけに注目して、この機能の具体的な実現過程を必要としません.
    javascriptオブジェクトは関連する変数と関数を一つの全体に結合します.この全体をオブジェクトといい、オブジェクトの変数を属性、変数の関数をメソッドといいます.javascriptの対象は辞書に似ています.
    オブジェクトの作成方法
    単量体
    
    
    
        
              
        
            var Tom = {
                //   
                name:'tom',
                age:18,
    
                //   
                showName:function(){
                    alert(this.name);
                },
                showAge:function(){
                    alert(this.age);
                }
            }
    
            //    
            alert(Tom.name);
            alert(Tom.age);
            
            //    
            Tom.showName();
        
    
    
        
    
    
    
    工場モード
    
    
    
        
                
        
            function Person(name,age,job){
                //       
                // var o = new Object();//   
                var o = {};//   、  
    
                o.name = name;
                o.age = age;
                o.job = job;
    
                o.showName = function(){
                    alert(this.name);
                }
                o.showAge = function(){
                    alert(this.age);
                }
                o.showJob = function(){
                    alert(this.job);
                }
    
                return o;
            }
    
            var Tom = Person('tom',18,'   ');
            Tom.showJob();
    
            var Jack = Person('jack',19,'   ');
            Jack.showJob();
        
    
    
        
    
    
    
    構造関数
    
    
    
        
            
        
            function Person(name,age,job){
                this.name = name;
                this.age = age;
                this.job = job;
    
                this.showName = function(){
                    alert(this.name);
                }
                this.showAge = function(){
                    alert(this.age);
                }
                this.showJob = function(){
                    alert(this.job);
                }
            }
    
            //new                       ,       
            var Bob = new Person('bob',18,'   ');
            Bob.showJob();
    
            var Alex = new Person('alex',19,'   ');
            Alex.showJob();
    
            alert(Bob.showName == Alex.showName);//false              。
        
    
    
        
    
    
    
    プロトタイプ
    
    
    
        
            
        
            function Person(name,age,job){
                this.name = name;
                this.age = age;
                this.job = job;
    
                Person.prototype.showName = function(){
                    alert(this.name);
                }
                Person.prototype.showAge = function(){
                    alert(this.age);
                }
                Person.prototype.showJob = function(){
                    alert(this.job);
                }
            }
    
            //         showName  ,          
            var Lucy = new Person('lucy',18,'   ');
            //          ,        
            Lucy.showName = function(){
                alert('     ' + this.name);
            }
            Lucy.showName();//     lucy。           ,         。
    
            var Lily = new Person('lily',19,'   ');
            Lily.showName();//lily
    
            alert(Lucy.showName == Lily.showName);//false
        
    
    
        
    
    
    
    上記の主な理解が必要なのは、オブジェクトを呼び出す方法は、まず対象の内部にあるかどうかを確認し、ある場合は自分のものを使って、ない場合は元のモデルに戻って探します.
    引き継ぐ
    callとappyの違い
    
    
    
        
        call apply
        
            /*
            call apply   
    
                      this,    apply              
            */
            function aa(a,b){
                alert('  this ' + this + ',  a ' + a + ',  b ' + b);
            }
    
            //  this [object Window],  a 2,  b 3
            // aa(2,3);
    
            //  this abc,  a 2,  b 3
            // aa.call('abc',2,3);
    
            //  this abc,  a 2,  b 3
            aa.apply('abc', [2,3]);
        
    
    
        
    
    
    
    引き継ぐ
    
    
    
        
             
        
            //  
            function Fclass(name, age){
                this.name = name;
                this.age = age;
            }
            Fclass.prototype.showName = function(){
                alert(this.name);
            }
            Fclass.prototype.showAge = function(){
                alert(this.age);
            }
    
            //  
            function Sclass(name, age, job){
                //   call  apply      
                Fclass.call(this, name, age);
                this.job = job;//     job  ,        
            }
            //    :                  
            Sclass.prototype = new Fclass();
            Sclass.prototype.showJob = function(){
                alert(this.job);
            }//         ,         。
    
            //               ,        
            var Driver = new Sclass('tom',18,'   ');
            Driver.showName();
            Driver.showAge();
            Driver.showJob();
        
    
    
        
    
    
    
    上の継承で注意したいのは、父の属性を継承する場合は、父の種類をコールする方法で、本来は父の種類を指すthisをサブクラスとします.このように属性は継承されます.