js物件導向第三天

2021-10-01 09:53:36 字數 1678 閱讀 9364

----------------------------------------------函式也是物件----------------------------------------

函式也是通過類來建立的,通過function來建立函式物件

函式是比較特殊的物件,函式的宣告是引用資料型別,

--------------------------------------通過function類建立乙個函式-------------------------------

new function()//可以建立出來的乙個匿名物件 

---------------------------------------通過function類建立物件-------------------------------------

函式是物件,物件是屬性的無序集合

常用的屬性:arguments,length,name:」anonymous「 

------------------------------初步了解call方法--------------------

1)call是函式的原型物件上的方法

2)函式.call ,可以把這個函式呼叫了

3)f.call()f中的this表示window,(括號為空,this指向window)

4)f.call(obj)  f中的this表示obj(括號裡面是obj,this就會指向該物件)

要想通過obj呼叫f函式,怎麼做?

方式一:把函式作為obj的屬性,掛在obj上。

方式二:要想讓這個函式不作為obj的屬性。delete obj.該屬性

方式三:使用call方法。f.call(obj)(表示讓obj去借用f方法,f方法中的this就指向obj)

f.call(obj):

表示兩件事:執行f函式,讓this的指向是obj

f.call目的是讓f執行,並且改變f的this指向,所以說在js中this的指向是動態的,可以通過call進行改變。

// fn() 它裡面的this表示window

// fn.call(); // fn中的this表示window

// fn.call(123) // fn中的this表示number 

// fn.call("hello") // fn中的this表示string 

// fn.call(true) // fn中的this表示boolean 

// fn.call({}) // {}

//let obj=

fn.call(obj)//

call方法支援傳參,從call方法的第二個引數開始就表示引數列表

例如:let r=fn.call(obj,1,2).

console.log(r)

總結:

1)call是函式原型物件上的屬性

2)任何乙個函式都可以.call

3)當乙個函式.call時,這個函式被執行,函式中的this指向call中的第乙個實參

4)如果call方法沒有實參也能執行,只是函式中的this表示window。

5)如果第乙個引數是null,在非嚴格模式下,函式中的this表示window,嚴格模式下,表示null

6)函式.call()時,函式肯定會執行,可以給函式傳參,從call的第二個引數開始,會傳給這個函式。

Python學習 第三天 物件導向程式設計基礎

簡單的說,類是物件的藍圖和模板,而物件是類的例項。這個解釋雖然有點像用概念在解釋概念,但是從這句話我們至少可以看出,類是抽象的概念,而物件是具體的東西。在物件導向程式設計的世界中,一切皆為物件,物件都有屬性和行為,每個物件都是獨一無二的,而且物件一定屬於某個類 型 當我們把一大堆擁有共同特徵的物件的...

學習JS的第三天

迴圈三要素 1 迴圈起點 2 迴圈的結束條件 3 變數更新 便於跳出迴圈,是趨於迴圈結束條件 語法結構 while 迴圈判斷條件 例如 列印1 10的數字 var i 1 變數初始化 迴圈起點。while i 10 注意點 1 在迴圈開始前,必須對變數初始化 宣告變數,給變數給個初始值 2 如果wh...

Js第三天筆記(陣列,函式,物件)

js的一種資料結構,存放資料的。說白了就是一組資料就叫做陣列 陣列的建立方式 1.new方法建立 var arr1 newarray 2.字面量方法建立 var arr2 陣列通過 下標 索引 來訪問陣列裡面的資料和賦值 注意的是陣列的下標是從0開始的 1.new方法建立 var arr1 newa...