摘要:中幾個(gè)最重要的大知識(shí)點(diǎn)面向?qū)ο笫录惒浇换ッ嫦驅(qū)ο笤谥锌梢园讶我獾囊煤妥兞慷伎闯墒且粋€(gè)對(duì)象。我們可以寫(xiě)一個(gè)通用方法來(lái)模擬面向?qū)ο笳Z(yǔ)言的多態(tài)
JavaScript中幾個(gè)最重要的大知識(shí)點(diǎn)
面向?qū)ο?/p>
DOM事件
異步交互ajax
面向?qū)ο?/b>在JS中可以把任意的引用和變量都看成是一個(gè)對(duì)象。面向?qū)ο蟮闹饕齻€(gè)表現(xiàn)形式:
封裝
繼承
多態(tài)
var obj={ name: "sam", age: 12, method: function(){ var objName=this.name; return objName; }, ale: function(){ var that=this; function sum(num1,num2){ this.num=that.age; return num1+this.num+num2; } console.log(sum(1,2)); } }
單例模式有不污染全局變量和節(jié)約window棧內(nèi)存的優(yōu)點(diǎn)
var main={ init:function(){ this.changeName(); }, changeName:function(){ var that=this; var oBody=document.body; oBody.onclick=function(){ that.changeValue(); } }, changeValue:function(){ document.getElementById("one").value="sam"; } } main.init();
能夠快速地根據(jù)不同需求,傳入不同參數(shù),來(lái)返回不同的對(duì)象,缺點(diǎn)是不能判斷對(duì)象的類(lèi)型
function self(name,age,sex){ var person={}; person.name=name; person.age=age; person.sex=sex; if(sex=="man"){ person.job="coder"; } if(sex=="woman"){ person.job="beatiful"; } return person; } var mine=self("sam",22,"man"); console.log(mine.job);
構(gòu)造函數(shù)模式能夠解決工廠模式不能判斷對(duì)象類(lèi)型的缺點(diǎn),構(gòu)造函數(shù)模式能夠自定義類(lèi),構(gòu)造具有相同屬性和方法的實(shí)例
function Person(){ this.eat="food"; this.sleep="night"; this.say=function(){ console.log("I am person,I can speak"); } } var person1=new Person(); person1.say();
call()和apply()方法
call()方法:
讓調(diào)用對(duì)象執(zhí)行,然后第一參數(shù)是誰(shuí),調(diào)用對(duì)象的this就改變指向是誰(shuí),后邊跟參數(shù),依次對(duì)應(yīng)傳入
apply()方法:
讓調(diào)用對(duì)象執(zhí)行,然后第一參數(shù)是誰(shuí),調(diào)用對(duì)象的this就改變指向是誰(shuí),后邊跟參數(shù),以數(shù)組的形式傳入
把被繼承者的構(gòu)造函數(shù)賦值給繼承者的prototype,注意需要給繼承者的prototype手動(dòng)添加constructor屬性
function A(){ this.name="A"; this.sayHi=function(){ console.log("Hi!I am A"); } } function B(){ this.name="B"; this.age=22; this.sayHi=function(){ console.log("Hi,I am B"); } } B.prototype.work=function(){ console.log("I can play"); } A.prototype=new B(); A.prototype.constructor=A; var a=new A(); console.log(a);
把被繼承者設(shè)置的私有屬性,克隆一份作為繼承者私有的
function A(){ this.name="A"; this.age=22; this.sayName=function(){ console.log("I am A"); } } function B(){ A.call(this); } var b=new B(); console.log(b);
繼承者繼承了被繼承者私有和公有的屬性和方法
function A(){ this.x=100; } A.prototype.getX=function(){ console.log(this.x); } function B(){ var temp=new A(); for(var key in temp){ this[key]=temp[key]; } } var b=new B(); console.log(b);
javascript中沒(méi)有嚴(yán)格的多態(tài),因?yàn)镴S中沒(méi)有重載,相同名字的函數(shù)不能同時(shí)存在,后定義的重名函數(shù)會(huì)覆蓋先定義的函數(shù)(即使兩個(gè)形參不相同)。我們可以寫(xiě)一個(gè)通用方法來(lái)模擬面向?qū)ο笳Z(yǔ)言的多態(tài)
function simPoly(){ if(arguments.length==1){ return function(){ console.log(1); } } if(arguments.length==2){ return function(){ console.log(2); } } } simPoly(1,2)();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/83661.html
摘要:使用來(lái)移除事件,參數(shù)必須與要移除的事件處理函數(shù)地址指針相同。在低版本瀏覽器中,綁定級(jí)事件的方法為中的級(jí)事件的事件處理程序都是在冒泡階段執(zhí)行的。 JavaScript中幾個(gè)最重要的大知識(shí)點(diǎn) 面向?qū)ο?DOM事件 異步交互ajax 事件 事件就是文檔和瀏覽器的瞬間交互行為 1.事件類(lèi)型 點(diǎn)擊: click 滾輪: scroll 滑動(dòng): move 進(jìn)入: enter 加載: load ...
摘要:與響應(yīng)不同的是,身份驗(yàn)證并不能提供任何幫助,而且這個(gè)請(qǐng)求也不應(yīng)該被重復(fù)提交。 JavaScript中幾個(gè)最重要的大知識(shí)點(diǎn) 面向?qū)ο?DOM事件 異步交互ajax AJAX AJAX是異步的javascript和xml(Asynchronous Javascript And XML)的縮寫(xiě),用于網(wǎng)頁(yè)局部刷新,提升用戶瀏覽體驗(yàn) 通常前端程序員關(guān)于AJAX的掌握僅僅停留在會(huì)用AJAX發(fā)送...
摘要:作為前端開(kāi)發(fā)必須掌握的一門(mén)語(yǔ)言,因?yàn)檎Z(yǔ)言的靈活性,有些知識(shí)點(diǎn)看起來(lái)簡(jiǎn)單,在真正遇到的時(shí)候,卻不一定會(huì)直接做出來(lái),今天我們就一起來(lái)看看幾道題目吧題目這道題考察的知識(shí)點(diǎn)是運(yùn)算符的優(yōu)先級(jí)。 Javascript作為前端開(kāi)發(fā)必須掌握的一門(mén)語(yǔ)言,因?yàn)檎Z(yǔ)言的靈活性,有些知識(shí)點(diǎn)看起來(lái)簡(jiǎn)單,在真正遇到的時(shí)候,卻不一定會(huì)直接做出來(lái),今天我們就一起來(lái)看看幾道題目吧 題目1 var val = smtg; ...
摘要:包含塊是一個(gè)相對(duì)的概念,比如子元素的初始化布局總是在父元素的左上角,這就是一個(gè)相對(duì)的概念。每個(gè)元素都會(huì)生成一個(gè)包含塊,但這個(gè)包含塊是虛無(wú)的,你看不到也摸不著,只是一個(gè)概念。這個(gè)屬性在新的版本中已經(jīng)移除了,可以不用關(guān)注該屬性了。 替換元素與非替換元素 替換元素:是指瀏覽器根據(jù)元素的標(biāo)簽和屬性來(lái)決定元素的具體內(nèi)容。 例如瀏覽器會(huì)根據(jù)標(biāo)簽的src屬性的值來(lái)讀取圖片信息并顯示,瀏覽器會(huì)根據(jù)i...
摘要:包含塊是一個(gè)相對(duì)的概念,比如子元素的初始化布局總是在父元素的左上角,這就是一個(gè)相對(duì)的概念。每個(gè)元素都會(huì)生成一個(gè)包含塊,但這個(gè)包含塊是虛無(wú)的,你看不到也摸不著,只是一個(gè)概念。這個(gè)屬性在新的版本中已經(jīng)移除了,可以不用關(guān)注該屬性了。 替換元素與非替換元素 替換元素:是指瀏覽器根據(jù)元素的標(biāo)簽和屬性來(lái)決定元素的具體內(nèi)容。 例如瀏覽器會(huì)根據(jù)標(biāo)簽的src屬性的值來(lái)讀取圖片信息并顯示,瀏覽器會(huì)根據(jù)i...
閱讀 2050·2023-04-26 01:59
閱讀 3334·2021-10-11 11:07
閱讀 3371·2021-09-22 15:43
閱讀 3456·2021-09-02 15:21
閱讀 2659·2021-09-01 10:49
閱讀 956·2019-08-29 15:15
閱讀 3167·2019-08-29 13:59
閱讀 2891·2019-08-26 13:36