1.問題提出
需求:在實際程式設計中,我們可能有這樣的需求,當我們建立乙個物件後,就希望該物件自動的擁有某些屬性(例如,我們建立了乙個person物件,就希望該物件自動擁有name和age屬性)?
function
person
()var p1=new person();
window.alert(p1.name);//會輸出什麼?(輸出undefined)
2.使用this來解決
function
person()
var p1=new person();
var p2=new person();
window.alert(p1.name+" "+p2.name);
區別:
function
person()
function
show2()}
var p1=new person();
window.alert(p1.name+" "+p1.age); //錯誤
window.alert(p1.name2); //正確
p1.show(); //公開方法呼叫
p1.show2(); //公有調私有
3.進一步理解this
(1)哪個物件例項呼叫this所在的函式,那麼this就代表哪個物件例項。
(2)this不能在類定義的外部使用,只能在類定義的方法中使用。
function
test1
()var v=90;
window.test1(); //等價於test1() 輸出90
function
person()}
var p=new person();
p.v="hello";
p.abc(); //因為p呼叫函式this.abc=function(),所以p就是this
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
this關鍵字 static關鍵字
1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...
base關鍵字 this關鍵字
用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式 例項方法和例項屬性訪問器中。功能主要包括 1 呼叫基類上已被其他方法重寫的方法。2 指定建立派生類例項時應呼叫的基類建構函式。base常用於,在派生類物件初始化時和基類進行通訊。base可以訪問基類的公有成員和受保護成員,私有成...