1. 程式人生 > >複習2.0

複習2.0

Js中級複習

  1. this js的關鍵字,

用途:指向某一個物件。

如何判斷this指向

函式(方法)內

一種以函式的方式呼叫(不帶.) this指向winodw

一種以方法的形式呼叫(函式名前面帶.)this指向點前面的

函式(方法)外,this指向window

This指向的特列

  1. 自呼叫函式內的this都是window
  2. 定時器的this指向window
  3. 事件裡面的this 指向觸發事件的元素
  4. 建構函式裡的this指向他的例項

 

  1. 怎樣替換函式內的this

(1)       Call()

(2)       Apply

(3)       Bind()

  1. fn.call(B,5) B取代了fn中的this並把fn呼叫了。

Call和apply,bind只能是函式(方法)或者函式物件的

var a=45;

    var b={

        a:12

    }

    var arr=[12,56]

    function fn(){

        console.log(this.a)

    }

    fn.call(b)  call前面必須是函式物件,其他的不行

2.面向物件

1.單例模式

Var obj={}

2.工廠模式

function fn(){

Var obj={}

obj.name=”zhang”

return obj;

}

  1. 建構函式  三個特點  函式名首字母大寫 函式的屬性前面加this

函式呼叫用new 呼叫

function Person(name){

this.name=name

}

Var zhang=new Person(“zhang”)

1.每個建構函式天生自帶一個prototype的屬性,叫原型,他是一個物件,存放父類可繼承的屬性

2.函式內的屬性是子物件天生就繼承的,不需要任何操作

3.prototype上的屬性是繼承給子物件的,子物件必須通過__proto__(原型鏈)來查詢

4.每個子物件都有一個__proto__,它指向父類的原型。

原型鏈:

子物件再操作一個屬性時,首先看屬性是私有的,有就直接用,沒有就通過__proto__向子物件的父類查詢,父類有就使用,沒有就用父類的__proto__繼續向上查詢,知道基類Object,如果基類沒有就是undefined

Object.prototype.sex="男男女女"

    function Person(){

        this.name="張三"

    }

    Person.prototype={

        age:"456"

    }

    var zhang=new Person()

    console.log(zhang.sex)

 

  1. 作用域和作用域鏈

瀏覽器客戶端給js一個生存環境。

Js程式碼再執行之前,瀏覽器會給js一個生存環境就window。

他會分成兩個模組,一個就記憶體,一個叫執行。記憶體模組在程式碼執行前就完成了,存放關鍵字var和function,每存放一個變數就會生成一個記憶體地址。

 

在執行模組 a=12; 先通過記憶體地址查詢有沒有a,有就直接賦值給a,沒有就是undefined

賦值

  1. 基本資料型別 就直接賦值
  2. 引用資料型別 把記憶體地址賦給變數

var obj={

        name:"zhangsan"

    }

    var person=obj;

    person.name="lisi"

    console.log(obj.name)

 

基本資料型別在賦值的時候就是簡單的操作值

引用資料型別在賦值的時候,把記憶體地址賦值給變數,在操作引用資料型別的時候,首先通過記憶體地址去找到裡面的東西,然後操作。

(引用資料型別在賦值的時候,首先開闢一個堆記憶體,存放裡面的程式碼塊,然後把記憶體地址賦值給變數。在操作這個變數時候會通過記憶體地址去查詢,然後修改裡面的東西)

引用資料型別 object  array  function 前兩個都是以鍵值對的形式存放,而後一個以字串的形式存放。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

所以說try catch在不得已的情況下才去使用

 

 

 

 

 

 

 

 

課程

函式封裝是一種函式的功能,它把一個程式設計師寫的一個或者多個功能通過函式、類的方式封裝起來,對外只提供一個簡單的函式介面。當程式設計師在寫程式的過程中需要執行同樣的操作時,程式設計師(呼叫者)不需要寫同樣的函式來呼叫,直接可以從函式庫裡面呼叫

Scroll

  1. 我們學習的client和offset scrollwidth和scrolleheight都是隻讀的屬性
  2. Scrolltop和scrollleft是可讀寫的屬性

Scroltop的最小值是0存在邊界值 當他為0是回到容器的頂部

最大值是真實的高度-當前容器一螢幕的高度 scrollheight-clientheight