1. 程式人生 > >day24 ES6建構函式以及繼承 設計模式以及jquery基本選擇器

day24 ES6建構函式以及繼承 設計模式以及jquery基本選擇器

一、ES6建構函式和繼承

class Father{

constructor(name,age){

            this.name=name;

            this.age=age;

            this.init();//jerry在跑步

        }

init(){

            this.run();

        }

        run(){

            alert(this.name+"在跑步");

        }

        eat(){

            alert(this.name

+"在吃飯");

        }

     }

//   var p1=new Father("tom",19);

//   p1.eat();

    class Son extends Father{

        constructor(name,age,sex){

            super(name,age);

            this.sex=sex;

        }

        play(){

            alert(this.name+"在玩球");

        }

     }

     var son1=new

Son("jerry",19);

     son1.play();//jerry在玩球

二、設計模式

     1)單例模式(永遠保持一個例項)

          當例項第一個物件時,儲存了這個物件的所有資料

          當例項化多個物件時,後面的每一個物件都使用的是第一個例項化的物件。

function Person(name,age){

        if(!Person.obj){//當這個物件不存在時,就新增上去

            Person.obj={

            name:name,

            age:age,

            init

:function(){

                this.run();

            },

            run:function(){

                alert(this.name+"在跑步");

            },

            eat:function(){

                alert(this.name+"吃飯");

            }

            }

        }

        return Person.obj;

    }

    var p1=new Person("tom",10);

    var p2=new Person("jerry",10);

    alert(p1.name);//tom

    alert(p2.name);//tom

    p1.init();//tom在跑步

    p2.eat();//tom在吃飯

2)觀察者模式

     什麼時候觀察

     觀察要對應的情況後作出對應的反應。    

function Son(dad){

        this.dad=dad;

        this.cry=function(){

            this.dad.weinai();

        }

        setTimeout(function(){//延遲執行cry函式

            this.cry();

        }.bind(this),5000);

    }

    function Dad(){

        this.weinai=function(){

            alert("該泡奶粉了");

        }

    }

    var dad=new Dad();

    new Son(dad);

觀察模式案例:

三、JQuery(就是框架,庫)在這之前學的js都是原生的。

       $是jquery物件

1)引入jquery原則     

    先引入jquery.js,在引入自已寫的程式碼。(在使用JQuery時,必須要引入這個檔案,才能使用相關的程式碼,才有效果

     jquery.js沒有壓縮的檔案(平常用這個),jquery.min.js壓縮過的檔案。(產品上線用這個);

2)jquery入口

     a.js入口是window.onload=function(){};

        這個是整個頁面都載入完畢後再執行這個裡面的程式碼。包括src等資源。

     b.Jquery入口

        b.1$(document).ready(function(){});

        b.2$(function(){});

         這個只要瀏覽器載入到頁面底部就可以執行裡面程式碼了,不管其他圖片等資源是否載入完。

四、JQuery下的選擇器

       在css中怎麼用。就該怎麼用但是都要包個衣$("");

    (1).基本選擇器

    1.*萬用字元

        var eles=document.getElementsByTagName("*");

        console.log(eles[eles.length-1].nodeName);

        console.log($("*").length);//有length屬性

    2.元素選擇器、型別選擇符、標籤選擇器(div 、p)

      $("div").css("color","red");

    3.類選擇器  .class名  

      $(".aa").css("color","yellow");

    4.id選擇器   #id名

        $(function(){// 必須要寫這個,jquery程式碼都在這個裡面執行

        $("#box").css("color","red").css("width","200").css("                                   background","yellow");//這裡也可以不加px,也可以加

        $("#box").css({//設定屬性

         "width":"200px"鍵可以加雙引號,也可以不加雙引號

         height:"100",    值可以加px,也可以不加px

         color:"red",     其他的地方該加就加。 

         background:"yellow"

        })

    });

   5.群組選擇符  選擇符1,選擇符2......

         $("#box,.aa").css("color","red");

(2)層次關係選擇符

        1.E F 後代選擇符,包含選擇符了,找到E下面的F元素

                $("div p").css("color","red");

        2.E>F  子代選擇器,找到E下面兒子F,F一定是E的兒子,不能是孫子。

              $("#box>p").css("color","red");

        3.E+F相鄰兄弟選擇器,F一定是E的後面相鄰兄弟選擇器

                 $("#box+p").css("color","red");

        4.E~F 匹配到E元素後面所有的F兄弟元素

                $("#box~p").css("color","red");

(3)基本過濾選擇器

  1.     :first    找到這類第一個出現的

              $("p:first").css("color","blue");

      2.      :not(select)   這個元素不變,但是這類元素其他都變

               <p id="text">div2中的p</p>//藍色

        <p id="text1">div2中的p</p>

        <p id="text">div2中的p</p>// 藍色

              $("p:not(#text1)").css("color","blue");

  1.  :odd 選擇奇數   :even   選擇偶數

        $("li:odd").css("color","red");

  1.  :eq(index) 選擇這類元素的第幾個

        $("li:eq(2)").css("color","red");

  1.  :gt(index) 選擇大於索引index元素

      $("li:gt(2)").css("color","red");

       :lt(index)    選擇小於索引index元素

               $("li:lt(2)").css("color","red");

  1.   :header 選取標題(h1,h2,h3,h4,h5,h6)

       $(":header").css("color","red");

       7.:animated         

            $("#box").animate({//設定animate屬性

     left:500

    })

    $("div:not(:animated)").css("color","blue");

  1.  :focus

    $(".uname").focus();

     $(".uname:not(:focus)").val("jjjj");//聚焦的不用賦值

     });

  9.:empty  查詢所有不包含子元素或者文字的空元素  

     $("td:empty").css("background","red")

  1.   :parent  查詢所有含有子元素或者文字的元素

       $("td:parent").css("background","red");

  1. attribute[]  匹配包含給定屬性的元素

             $("div[id]").css("background", "red");

         $("input[name='newsletter']")    選擇所有的name屬性等                     於'newsletter'的input元素

         $("input[name!='newsletter']") 選擇所有的name屬性不等                   於'newsletter'的input元素

         $("input[name^='news']")         選擇所有的name屬性                          以'news'開頭的input元素 

         $("input[name$='news']")         選擇所有的name屬性                         以'news'結尾的input元素 

         $("input[name*='man']")          選擇所有的name屬性包                     含'news'的input元素

         $("input[id][name$='man']")    可以使用多個屬性進行聯合選                  擇,該選擇器是得到所有的含有id屬性並且那麼屬性以man結尾的元素