this關鍵字
<html><script type="text/javascript">
/*作為普通函數來調用時,this的值指向window,
準確的說,this為null,但被解釋成window
alert(window.xx);
function t(){
this.xx = 2;
}
t();
alert(window.xx);
*/
/*作為對象的方法來調用
this指向方法的調用者,就是該對象
var obj = {xx:11,yy:22,t:function(){alert(this.xx);}};
obj.t();
var dog = {xx:33};
dog.t = obj.t;
dog.t();
*/
/*this作為方法調用時,this指向其調用者,即母體對象,
不管被調用函數聲明時屬于方法還是屬于函數
var dog = {xx:33};
show = function(){
alert('show=' +this.xx);
}
dog.t = show;
dog.t();
*/
/*函數作為構造函數調用時
js中沒有類的概念,創建對象是用構造函數完成
或者直接用json格式來創建對象
new對象發生的步驟
a:系統創建空對象{},空對象的constructor屬性指向構造感受
b:把函數的this指向該空對象
c:執行該函數
d:返回該對象
*/
function Pig(){
this.age = 2;
return 'a';
}
var pig = new Pig();
//返回Pig對象,因為函數作為構造函數運行時,
//return的值是忽略的,還是返回對象
</script>
</html>