JavaScript基礎語法(4)
在js中鉴未,萬物皆對象。為什么zhe么說呢伙窃?因為即使是一個類饿这,在js中也是object或者window的一個對象。
對象
代碼示例:
function User(id,name) {
this.id=id;
this.name=name;
this.show=function () {
console.log(this.id+">>>"+this.name)
}
}
var u1=new User('001','tom');
var u2=new User('008','rose');
u1.nation='china';
說明:
- 當進行u1.nation='china'操作后撞秋,相當于User類新加了一個nation屬性长捧,并且將u1的nation屬性設置為china。
代碼示例:
function Admin() {}
var ad01=new Admin();
var ad02=new Admin();
ad01.name='admin001';
說明:
- 函數(shù)也可以看成是一個類吻贿,同樣可以通過上述方法為其添加屬性串结,賦值。
代碼示例:
var vip={};
vip.name='vipuser';
說明:
- 也可直接為類通過.的方式添加屬性,并賦值肌割。
原型鏈
任何一個類都有一個原型卧蜓,原型中存放的東西是共有的,可以被其實例化的對象所調用把敞,也可以被其子類的實例化對象所調用弥奸。
圖片示例:
- 結合圖片,當調用u1的屬性時奋早,會現(xiàn)在u1的父類中尋找盛霎,若沒有找到會到其父類的prototype中尋找,如果還沒找到回到其父類的父類的prototype中尋找耽装。
u1=>u1父類=》u1父類prototype=》u父類的父類=》u1父類的父類的prototype
- 這里面在類沒有實例化的時候相當于一個二維平面愤炸,只具備邏輯概念,沒有實體掉奄。prototype和類實例化都相當于幾何體规个,有實際意義。
代碼示例:
User.prototype.nation='usa';
User.prototype.show=function () {
}
User.prototype.school='qinghua';
var u1=new User('001','tom');
var u2=new User('008','rose');
u1.nation='china';
console.log(`u1.nation=${u1.nation}`);
console.log(`u2.nation=${u2.nation}`);
結果:
u1.nation=china
u2.nation=usa
- 通過結果可以看出姓建,prototype中的nation為所有對象共有诞仓。
可以通過如下方法整理自己的功能代碼:
function Util(){
}
//登錄功能
Util.prototype.login(){
}
//排序功能
Util.prototype.sort(){
}
以后在使用過程中可以直接通過Util.login()來調用方法。
計時器
計時器主要分為兩種:
// var timeout=setTimeout(show,2000);//2000毫秒后執(zhí)行一次
var inter=setInterval(show,1000); //間隔1000毫秒執(zhí)行一次
- js是一種單線程異步的語言引瀑。
js一次只能執(zhí)行一個任務狂芋,一個任務在執(zhí)行一段時間后執(zhí)行下一個,因為執(zhí)行速度太快使人們覺得多任務同時執(zhí)行憨栽。
代碼示例:
function add(m,n) {
var c;
setTimeout(function () {
c=m+n;
},100);
return c;
}
console.log(add(10,20));
上面程序執(zhí)行的結果為
undefined
- 因為當程序執(zhí)行到setTimeout時帜矾,程序不會等待,而是直接向下執(zhí)行屑柔,會直接返回c屡萤。c此時未定義,所以結果為undefined掸宛。(造成此結果的原因即為js的單線程異步執(zhí)行機制)
回調函數(shù)
說明:
即a調用一個函數(shù)死陆,在函數(shù)結束后會返回來調用通知a。
代碼示例:
function add(m,n,callback) {
setTimeout(function () {
var c=m+n;
callback(c); //show(30)
},3000);
}
add(30,40,function (res) {
console.log(res);
})
這段代碼中雖然function中會返回undfined,但是并被有人接受它唧瘾,程序不結束措译,等待計時器結束后輸出結果。
this
this表示this所在的函數(shù)被誰調用饰序,this就是誰领虹。