函數(shù)補充
1.arguments
arguments對象里面保存這方法的所有參數(shù)
arguments對象里面有個一個callee方法,該方法指向當前方法本身
functioncalc(num){
if(num===1){
return num
}
// 因為arguments.callee 就時 指向當前方法本身。
// 這樣的做的好處是,防止外部方法名修改后,導(dǎo)致遞歸調(diào)用失效。
let sum=num+arguments.callee(num-1)
return sum
}
2.分頁方法
//定義一個分頁方法,方法的三個參數(shù)分別是:原始數(shù)組,頁碼,每頁數(shù)量
functionpageData(arr,pageIndex,pageSize){
//思路:就是對原始數(shù)組中的數(shù)據(jù),做截取
//定義截取數(shù)據(jù)的起始位置l
etstart=(pageIndex-1)*pageSize
//定義截取數(shù)據(jù)的結(jié)束位置
letend=start+pageSizereturnarr.slice(start,end)
}
對象
如果 a.b ,那么a就是對象,b是a的屬性
如果 a.c(),那么a就是對象,c是a的方法
對象就是擁有一組屬性和方法的集合
定義對象有兩種方式:1.采用字面量賦值方式直接定義。2.采用構(gòu)造函數(shù)的方式new一個對象
1.采用字面量賦值方式定義對象
通過對象名.屬性,調(diào)用對象的屬性,可以獲取屬性的值,也可以修改屬性的值,也可以添加新的屬性
通過對象名.方法(),調(diào)用對象的方法,執(zhí)行方法里面的代碼
案例:
?let calc = {
? ? ? ? ? ? num1:0,
? ? ? ? ? ? num2:0,
? ? ? ? ? ? jia(){
? ? ? ? ? ? ? ? console.log(`${this.num1}+${this.num2}=${this.num1+this.num2}`);
? ? ? ? ? ? },
? ? ? ? ? ? jian(){
? ? ? ? ? ? ? ? console.log(`${this.num1}-${this.num2}=${this.num1-this.num2}`);
? ? ? ? ? ? },
? ? ? ? ? ? cheng(){
? ? ? ? ? ? ? ? console.log(`${this.num1}*${this.num2}=${this.num1*this.num2}`);
? ? ? ? ? ? },
? ? ? ? ? ? chu(){
? ? ? ? ? ? ? ? console.log(`${this.num1}/${this.num2}=${this.num1/this.num2}`);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? calc.num1=200
? ? ? ? calc.num2=20
? ? ? ? calc.jia()
? ? ? ? calc.jian()
? ? ? ? calc.cheng()
? ? ? ? calc.chu()
2.采用構(gòu)造函數(shù)的方式new一個對象
?// 構(gòu)造函數(shù);首先是個函數(shù),這個函數(shù)用來創(chuàng)建出對象
// 可以使用系統(tǒng)構(gòu)造函數(shù)object創(chuàng)建一個對象
? ? ? ? let obj= new Object()
? ? ? ? console.log(obj);
? ? ? ? let obj1 = {}
? ? ? ? console.log(obj1);
? ? ? ? console.log('-----------------------');
?//多數(shù)情況下,都是先自定義一個構(gòu)造函數(shù),再通過自定義的構(gòu)造函數(shù)創(chuàng)建出對應(yīng)的對象
?// 可以將構(gòu)造函數(shù)理解成:類
? ? ? ? function Student(no,name,age,sex) {
? ? ? ? ? ? this.no=no
? ? ? ? ? ? this.name=name
? ? ? ? ? ? this.age=age
? ? ? ? ? ? this.sex=sex
? ? ? ? }
// 通過類型構(gòu)造函數(shù)樂意創(chuàng)建出無數(shù)個對象
? ? ? ? let s1=new Student(1001,'張三',20,'男')
? ? ? ? console.log(s1);
? ? ? ? let s2=new Student(1002,'李四',19,'女')
? ? ? ? console.log(s2);