面向?qū)ο?/h2>

面向?qū)ο螅?br> 對(duì)象:女朋友 貓 ,電視()
萬(wàn)物皆對(duì)象
var oDate=new Date();
oDate.getTime();
面向?qū)ο螅褐还苡茫托?。不用關(guān)心內(nèi)部實(shí)現(xiàn)
var arr=[];
arr.push(1);
對(duì)象:
1.用對(duì)象
2.寫(xiě)對(duì)象 $$$
對(duì)象怎么構(gòu)成:
1.屬性
變量
變量,是自由的;屬性,有所屬者mmm
2.方法
函數(shù)
------------------------------------
this:當(dāng)前發(fā)生事件
當(dāng)前方法屬于誰(shuí),this就是誰(shuí)
*默認(rèn)全局屬于window
*js本身就有很多bug
作者就自己承認(rèn)
布萊登·艾克 java
----------------------------------
js
試著更改一些bug
嚴(yán)格模式:
'use strict'
嚴(yán)格模式的好處:
1.修復(fù)了局部函數(shù)this的問(wèn)題
2.不允許在if/for等里面定義函數(shù)
3.干掉了with(公用代碼){}
4.定義變量必須加var
作用域范圍:
1.最大不超出script標(biāo)簽
2.可以放在函數(shù)里面
3.放在文件里面
*在以后寫(xiě)代碼的時(shí)候都要加上


造對(duì)象:造人
屬性:物體特征
方法:物體行為


內(nèi)置系統(tǒng)對(duì)象:(不要用系統(tǒng)的內(nèi)置對(duì)象)
Date();
arr
reg
json


js中造一個(gè)空白對(duì)象:
var obj=new Object();
首字母大寫(xiě)的函數(shù)統(tǒng)稱(chēng):構(gòu)造函數(shù)
*為了和普通函數(shù)做一個(gè)區(qū)分


工廠模式:
原料->加工->出廠


*new都干了什么
1.幫咱們創(chuàng)建了一個(gè)空白對(duì)象,并且賦值給了this
2.加了new 之后,系統(tǒng)自動(dòng)幫你返回return

*new后面跟的都是函數(shù)(構(gòu)造函數(shù))
.red{background-color:red;}
<div class='red'></div>
<div class='red'></div>
<div class='red' style="background:green;"></div>
<div class='red'></div>
<div class='red'></div>


原型:
prototype
給一類(lèi)添加?xùn)|西
原型用處:擴(kuò)展系統(tǒng)方法

面向?qū)ο螅?br> 1.構(gòu)造函數(shù)里面添加屬性
2.方法添加到原型上


面向?qū)ο蟮姆Q(chēng)呼:
類(lèi)(構(gòu)造函數(shù)) 構(gòu)造對(duì)象相當(dāng)是個(gè)模子
對(duì)象(實(shí)例):new 構(gòu)造函數(shù) 有實(shí)際功能,模子產(chǎn)出東西


面向?qū)ο蟮奶卣鳎?br> 封裝
{

*繼承

多態(tài)

繼承:遺傳  子級(jí)可以繼承父級(jí)

******任何東西都是對(duì)象 Object

檢測(cè)一個(gè)對(duì)象的具體類(lèi)型:
instanceof
:自己,自己的父級(jí),自己的父級(jí)的父級(jí)......
現(xiàn)在就想找它自己的親爹:
constructor: 構(gòu)造器/構(gòu)造函數(shù)
只檢測(cè)父級(jí)


js中詭異的事情:
去看詭異事情的例子


基本數(shù)據(jù)類(lèi)型:
字符串
數(shù)字
布爾
fn
//obj
undefined
var a=1;
包裝類(lèi):(java借鑒過(guò)來(lái)的)
var a=new Number(5);


面向?qū)ο罄锩姘裻his搞明白,基本就會(huì)了
this:
this的優(yōu)先級(jí):(多包一層失效)
new->object
定時(shí)器->window
事件->事件對(duì)象
方法->當(dāng)前對(duì)象
其他

繼承:
子級(jí)繼承父級(jí)功能
給父級(jí)添加一個(gè)功能,子級(jí)默認(rèn)就有
function CreatePerson()
function Person()
function Worker()
fn W(){
this.name=''
this.age=''
this.job=''
}


繼承:
屬性:
改變this指向:
.call(this指向,參數(shù)1,參數(shù)1···);
.apply:跟call的功能一樣
.apply(this指向,[參數(shù)1,參數(shù)1···]);
//arguments代表所有的實(shí)參參數(shù)
.apply(this指向,arguments);
方法:
1.子級(jí).prototype=父級(jí).prototype;
2.for(var name in Person.prototype){
循環(huán)復(fù)制
}
3.Worker.prototype=new Person();
Worker.prototype.constructor=Worker;
繼承:
1.屬性
父級(jí)的構(gòu)造函數(shù).apply(this,arguments);
2.方法
子級(jí)的構(gòu)造函數(shù).prototype=new 父級(jí)構(gòu)造();
子級(jí)的構(gòu)造函數(shù).prototype.constructor= 子級(jí)構(gòu)造;


特稱(chēng):
封裝:抽
繼承:子類(lèi)可以繼承父類(lèi)的所有東西
多態(tài):js里面沒(méi)有意義
類(lèi):構(gòu)造函數(shù)
對(duì)象(實(shí)例):有真正功能
強(qiáng)制改變this:
.call
.apply
屬性:
父類(lèi).call(this,cs1,cs2);
父類(lèi).apply(this,arguments);
方法:
子類(lèi).prototype=new 父類(lèi)();
子類(lèi).prototype.constructor=子類(lèi);


變量名沖突:
1.封閉空間()()
(function(){})();自執(zhí)行匿名函數(shù)、閉包
(function(){}())
~function(){}()
2.模塊化
3.面向?qū)ο?br> 4.命名空間
規(guī)劃整個(gè)網(wǎng)站
公用函數(shù)
var BaiduWeb={
pc:{
pub:{}//公用函數(shù)
Effect:{}//各種效果
},
mobile:{}
};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容