建構函式和成員函式

2021-08-09 05:37:46 字數 2479 閱讀 8382

1.物件-成員函式(方法)

比如:我們希望物件不但有屬性,還希望它有行為(行為在程式中要靠函式來體現)

(1)新增speak函式,輸出我是乙個好人;

(2)新增jisuan函式,可以計算從1+…+1000的結果

(3)修改jisuan函式,該方法可以接收乙個數n,計算從1+…+n的結果

(4)新增add成員函式,可以計算兩個數的和

function

person

(name,age)

//新增jisuan函式,可以計算從1+...+1000的結果

this.jisuan=function

(n)return res;}}

var p1=new person("小白",90);

p1.show();

document.writeln("res="+p1.jisuan(10));

2.給乙個物件新增(指定)函式的幾種方式

(1)方式一

function

person()}

var p1=new person(); //建立乙個p1物件

p1.abc(); //呼叫

(2)方式二

function

person

()function

show1

()var p1=new person(); //建立乙個p1物件

p1.abc=show1; //把show1函式,給p1.abc

p1.abc(); //呼叫

思考:window.alert(p1.abc)和window.alert(show1)會輸出什麼?

都會輸出函式:

function

show1

()

(3)方式三

function

person

()var p1=new person();

p1.abc=function

show1

();p1.abc();

(4)方式四

前面的幾種方法有乙個問題:那就是每個物件獨佔函式**,這樣如果物件很多,則會影響效率,js設計者給我們提供另乙個方法:原型法。這樣多個函式可以共享函式**,**如下:

function

dog()

//使用prototype類去繫結乙個函式給shout

dog.prototype.shout=function

()var dog1=new dog();

dog1.shout();

var dog2=new dog();

dog2.shout();

**原理說明:

注意:==號的作用:

(1)當==的兩邊都是字串的時候,則比較內容相等否。

(2)如==兩邊是數字,則數的大小是否相等。

(3)如==是物件或者是物件函式,則比較位址是否相等。

3.針對以下案例輸出是什麼?

(1)案例一

function

person

()function

show1

()var p1=new person();

p1.abc=show1;

show1();

輸出 hello空格;

(2)案例二

function

person

()var name="北京";

function

show1

()var p1=new person();

p1.abc=show1;

show1();

輸出hello北京;

(3)案例三

function

person()}

var p1=new person();

p1.abc();

p1.abc("北京","天津");

第乙個輸出abc 900 undefined undefined;

第二個輸出abc 900 北京 天津;

(4)

function

person()}

var p1=new person();

p1.name="中國"; //動態新增乙個屬性,此時p1.name會代替this.name

p1.abc();

p1.abc("北京","天津");

輸出中國 900 北京 天津;

Tree類的建構函式和成員函式

定義乙個tree 樹 類,有成員ages 樹齡 不帶引數的建構函式對ages初始化為1,成員函式grow int years 對ages加上years,age 顯示tree物件的ages的值。tree類宣告如下 class tree 請實現tree類的建構函式和成員函式。裁判測試程式樣例 inclu...

C 建構函式與普通成員函式,建構函式過載

建構函式是類的成員函式,用於初始化類的物件。在c 中,建立物件 類的例項 時會自動呼叫建構函式。它是類的特殊成員函式。在以下方面有所不同 建構函式與類本身具有相同的名稱 建構函式沒有返回型別 建立物件時會自動呼叫建構函式 如果我們未指定建構函式,則c 會自動生成乙個預設建構函式 不帶引數,並且是空主...

建構函式和複製控制成員

建構函式和複製控制成員不能繼承 即建構函式,析構函式,複製建構函式,賦值操作符 每個類定義自己的建構函式和複製控制成員。像任何類一樣,如果類不定義自己的預設建構函式和複製控制成員,就將使用合成版本。派生類建構函式 派生類的建構函式受繼承關係的影響,每個派生類建構函式除了初始化自己的資料成員之外,還要...