一,js中物件繼承
js中有三種繼承方式
1.js原型(prototype)實現繼承
複製**
**如下:
2.建構函式實現繼承
複製**
**如下:
複製**
**如下:
js手冊中對call的解釋:
複製**
**如下:
call 方法
呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。
call([thisobj[,arg1[, arg2[, [,.argn]]]]])
引數
thisobj
可選項。將被用作當前物件的物件。
arg1, arg2, , argn
可選項。將被傳遞方法引數序列。
說明
call 方法可以用來代替另乙個物件呼叫乙個方法。call 方法可將乙個函式的物件上下文從初始的上下文改變為由 thisobj 指定的新物件。
如果沒有提供 thisobj 引數,那麼 global 物件被用作 thisobj。
複製**
**如下:
function person(name,age);
} function print()
} alert(msg.join(" "));
};
} function student(name,age,grade,school)
var p1=new person("卜開化",80);
p1.sayhello();
var s1=new student("白雲飛",40,9,"嶽麓書院");
s1.show();
s1.sayhello();
alert(s1.funcname);
我們先從math.max()函式說起,math.max後面可以接任意個引數,最後返回所有引數中的最大值。
比如複製**
**如下:
alert(math.max(5,8)); //8
alert(math.max(5,7,9,3,1,6)); //9
//但是在很多情況下,我們需要找出陣列中最大的元素。
var arr=[5,7,9,1];
//alert(math.max(arr)); // 這樣卻是不行的。nan
//要這樣寫
function getmax(arr)
return ret;
} alert(getmax(arr)); //9
function getmax2(arr)
alert(getmax2(arr)); //9
//兩段**達到了同樣的目的,但是getmax2卻優雅,高效,簡潔得多。
//再比如陣列的push方法。
var arr1=[1,3,4];
var arr2=[3,4,5];
//如果我們要把 arr2展開,然後乙個乙個追加到arr1中去,最後讓arr1=[1,3,4,3,4,5]
顯然是不行的。 因為這樣做會得到[1,3,4,[3,4,5]]
//我們只能用乙個迴圈去乙個乙個的push(當然也可以用arr1.concat(arr2),但是concat方法並不改變arr1本身)
var arrlen=arr2.length;
for(var i=0;i js中物件的繼承 1.物件冒充 js中沒有訪問修飾符的概念 可以實現多繼承 但會出現干擾,如果父類a和父類b中都定義了同名的屬性或方法,後面的繼承就會把前面的給替換掉了 不推薦 function parent username function child username,password var... 自有屬性 own property 物件本身具有的屬性 繼承屬性 從原型物件 prototype object 繼承而來 物件的查詢過程 查詢過程中,查詢物件o的屬性x,如果o的屬性不存在x,則對o的原型物件進行查詢,使原型鏈查詢。屬性賦值操作過程 屬性賦值過程中,先檢查原型鏈,以此判斷是否允許賦值... js物件定義的方法 方法一 通過var object 物件字面量 1 可以叫物件直接量來自定義乙個物件。物件自面量是乙個表示式,這個表示式的每次運算都建立並初始化乙個新物件 2 還可以換行寫,每義定乙個屬性名和值,用逗號分開,最後乙個不加逗號,加了會被忽略,但在ie中會報錯,最好不要加 方法二 通過...js中物件的繼承
js物件繼承
JS物件 繼承