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做的好的也不只這些,何況還有年終獎,績效什麼的。在中國做技術的其實是很慘的。從以前拼...
孔子到底是誰?
提起孔子,想必中國人都知道,甚至比熟悉人民幣還熟悉他。因為對他的炒作已經延續了幾千年,使得這位山東大漢紅的發紫,但孔子到底是誰呢,擁有這麼大的魔力,在中華幾千年文化中處處留下他的烙印,使得 孔子門 經得起千年歲月的沖刷,依然濤聲依舊。其實孔子是被歷代帝王捧紅的,也就是說,孔子是中國被炒作最厲害的人物...