this到底是誰

2021-06-26 03:42:46 字數 1330 閱讀 1455

js中函式的4種呼叫方式

1.作為普通函式來呼叫

alert(window.xx);//undefined

function t()

t();

alert(window.xx);//333

解釋:作為普通函式來呼叫this時,this的值指向->windwo,準確的說,this為null,

但被解釋成window,在ecmascript5標準中,如果this為null,則解釋成undefined

2.作為物件的方法來呼叫

//物件屬性

var obj = };

obj.t();//999var obj = };

obj.t();//999

var dog = ;

dog.t = obj.t;

dog.t();// wangwang

//函式

show = function()

dog.t = show;

dog.t();//show wangwang

解釋:this指向方法的呼叫者,即該物件

this指向其呼叫那一刻的呼叫者,即

母體物件

不管被呼叫函式,宣告時屬性方法,還是函式,this都指向母體物件

3.函式作為構造函式呼叫時

js中沒有類的概念,建立物件時用建構函式來完成,或者直接用json格式{}來寫物件

new dog發生的事情:

1.系統建立空物件{},(空物件construct屬性指向dao函式)

2.把函式的this指向該空物件

3,執行該函式

4.返回該物件

function dog(name, age)

}用建構函式建立物件

var dog = new dog('huzi', 2);

dog.bark();//this is huzi

語法格式:函式.call(物件,引數1,引數2...引數n);

function t(num)

var human = ;

human.t = t;

human.t(-10);//輸出28 18 ,this指向了human,但是human多了乙個方法

//接下來,不把t賦值為human的屬性,也能把this指向human

var wangwu = ;

t.call(wangwu,5);//輸出 30 35

到底是誰害了誰?

到底是誰害了誰?和乙個獵頭朋友聊天,他說最近在找乙個軟體架構師的職務,年薪30萬。不知道朋友們對30w的年薪是什麼概念,但看了要求你就會更驚訝。如果真象jd裡面要求的那樣年薪30w實在是有點低了。他說乙個公司的做hr做的好的也不只這些,何況還有年終獎,績效什麼的。在中國做技術的其實是很慘的。從以前拼...

到底是誰害了誰?

到底是誰害了誰?和乙個獵頭朋友聊天,他說最近在找乙個軟體架構師的職務,年薪30萬。不知道朋友們對30w的年薪是什麼概念,但看了要求你就會更驚訝。如果真象jd裡面要求的那樣年薪30w實在是有點低了。他說乙個公司的做hr做的好的也不只這些,何況還有年終獎,績效什麼的。在中國做技術的其實是很慘的。從以前拼...

孔子到底是誰?

提起孔子,想必中國人都知道,甚至比熟悉人民幣還熟悉他。因為對他的炒作已經延續了幾千年,使得這位山東大漢紅的發紫,但孔子到底是誰呢,擁有這麼大的魔力,在中華幾千年文化中處處留下他的烙印,使得 孔子門 經得起千年歲月的沖刷,依然濤聲依舊。其實孔子是被歷代帝王捧紅的,也就是說,孔子是中國被炒作最厲害的人物...