摘要:談一談我對(duì)面向?qū)ο蟮睦斫馄胀ㄟ^(guò)程式寫法就是一步一步按著邏輯去寫代碼,而面向?qū)ο笫且詫?duì)象的思想寫代碼,把所有的屬性跟方法掛載在對(duì)象上,需要調(diào)用的是一個(gè)對(duì)象出來(lái)我們一直都在使用對(duì)象對(duì)象下面的屬性對(duì)象下面的方法面向?qū)ο缶幊烫攸c(diǎn)抽象抓住核心問(wèn)題封裝
1.談一談我對(duì)面向?qū)ο蟮睦斫?/b>
普通過(guò)程式寫法就是一步一步按著邏輯去寫代碼,而面向?qū)ο笫且詫?duì)象的思想寫代碼,把所有的屬性跟方法掛載在對(duì)象上,需要調(diào)用的是new一個(gè)對(duì)象出來(lái)
我們一直都在使用對(duì)象:Array,Date
ar arr = new Array() arr.length //對(duì)象下面的屬性 arr.push() //對(duì)象下面的方法
面向?qū)ο缶幊蹋╫op)特點(diǎn)
● 抽象:抓住核心問(wèn)題
● 封裝:只能通過(guò)對(duì)象來(lái)訪問(wèn)方法,如arr.push()
● 繼承:從已有對(duì)象上繼承出新的對(duì)象
● 多態(tài):多對(duì)象的不同形態(tài)(在js中用的比較少)
構(gòu)造函數(shù):new后面調(diào)用的函數(shù)叫做構(gòu)造函數(shù)
this指向問(wèn)題
● 當(dāng)new去調(diào)用一個(gè)函數(shù),this就是創(chuàng)建出來(lái)的對(duì)象而且函數(shù)的返回值直接就是this
面向?qū)ο蟮慕M成:方法、屬性
面向?qū)ο蟮姆椒ǎㄐ袨?、操作?函數(shù)、過(guò)程、動(dòng)態(tài)的
//對(duì)象方法:對(duì)象下面的函數(shù) arr.sort = function(){ alert("1") }_
面向?qū)ο蟮膶傩裕ㄗ兞浚籂顟B(tài)、靜態(tài)的
//對(duì)象下面的屬性:對(duì)象下面的變量 var arr=[]; arr.number = 10; alert(arr.nuber)3.Prototype模式
如果創(chuàng)建的對(duì)象多了,那么同樣的方法會(huì)存在很多份,為了提高性能,所以用.Prototype模式 (去改寫對(duì)象下面共用的方法和屬性,讓共用的方法或者屬性在內(nèi)存中存在一份)
原型:類似于css中的class
普通:方法看做是css中的style
//原型寫法 function Show(){ this.name = 3; }; Show.prototype.showName = function(){ var This = this; alert(This.name) }; var p1 = new Show(); p1.showName()4.系統(tǒng)中的對(duì)象使用
js就是基于原型的程序
例如數(shù)組的push方法: arr.push(); Array.prototype.push = function(){}
注意:盡量不要去修改或者添加系統(tǒng)對(duì)象下面的方法和屬性
5.對(duì)象的繼承有時(shí)候封裝好的函數(shù)并不一定在項(xiàng)目的任何地方都是可以直接復(fù)用,這時(shí)候就需要在原有的對(duì)象上新生成一個(gè)新的對(duì)象來(lái)滿足當(dāng)前的需求
什么是繼承:
● 在原有對(duì)象的基礎(chǔ)上,略作修改,得到一個(gè)新的對(duì)象
● 不影響原有對(duì)象的功能
如何繼承
屬性的繼承:
function 新的函數(shù)(){ createPerson.call(this,需要的屬性,需要的屬性) }
方法的繼承:
for(var attr in 原有函數(shù)){ 新函數(shù).prototype[attr] = 有函數(shù).prototype[attr] }如果有寫的不好的地方請(qǐng)不吝賜教,不勝感激!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90841.html
摘要:是完全的面向?qū)ο笳Z(yǔ)言,它們通過(guò)類的形式組織函數(shù)和變量,使之不能脫離對(duì)象存在。而在基于原型的面向?qū)ο蠓绞街?,?duì)象則是依靠構(gòu)造器利用原型構(gòu)造出來(lái)的。 JavaScript 函數(shù)式腳本語(yǔ)言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長(zhǎng)期以來(lái)人們對(duì)這一門語(yǔ)言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z(yǔ)言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽?,從?duì)語(yǔ)言感悟的角度闡述為什...
摘要:更形象的我們還可以將面向?qū)ο罄斫鉃橐环N宗教信仰。這就導(dǎo)致面向?qū)ο蠼痰某绦騿T們?cè)趯憰r(shí)就很難受。所以為了滿足信仰面向?qū)ο蠼痰男枨笸ㄟ^(guò)構(gòu)造函數(shù)的形式模擬了偽類。這個(gè)套路的核心就是類那么里沒(méi)有類所以其實(shí)是通過(guò)構(gòu)造函數(shù)來(lái)模擬的偽類。 JS面向?qū)ο笾?【概述】 在學(xué)習(xí)JS的面向?qū)ο笾?我們應(yīng)該先自問(wèn)這樣幾個(gè)問(wèn)題: 面向?qū)ο笫鞘裁匆馑? 學(xué)習(xí)面向?qū)ο蟮暮诵氖鞘裁? 為什么要學(xué)習(xí)面向?qū)ο?(它的...
摘要:對(duì)象重新認(rèn)識(shí)面向?qū)ο竺嫦驅(qū)ο髲脑O(shè)計(jì)模式上看,對(duì)象是計(jì)算機(jī)抽象現(xiàn)實(shí)世界的一種方式。除了字面式聲明方式之外,允許通過(guò)構(gòu)造器創(chuàng)建對(duì)象。每個(gè)構(gòu)造器實(shí)際上是一個(gè)函數(shù)對(duì)象該函數(shù)對(duì)象含有一個(gè)屬性用于實(shí)現(xiàn)基于原型的繼承和共享屬性。 title: JS對(duì)象(1)重新認(rèn)識(shí)面向?qū)ο? date: 2016-10-05 tags: JavaScript 0x00 面向?qū)ο?從設(shè)計(jì)模式上看,對(duì)象是...
摘要:自己的理解的第一個(gè)參數(shù)就是的值如果沒(méi)用默認(rèn)是那個(gè)調(diào)用函數(shù)的當(dāng)前的對(duì)象在全局作用域中就是被隱藏的所以不寫且在全局作用于調(diào)用函數(shù)的時(shí)候就是可以使用或者自己指定的指向 JS面向?qū)ο笠?MVC的面向?qū)ο蠓庋b MDNjavascript面向?qū)ο?面向?qū)ο?Object-Oriented) showImg(https://segmentfault.com/img/remote/1460000016...
摘要:雖然,也是面向疾苦的語(yǔ)言,但是,它和靜態(tài)類型語(yǔ)言的面向接口編程不一而足。對(duì)象對(duì)他自己的行為負(fù)責(zé),其他對(duì)象不關(guān)心它的內(nèi)部實(shí)現(xiàn)。 ‘工欲善其事,必先利其器’,在深入學(xué)習(xí)JavaScript之前,我認(rèn)為我們很有必要了解以下,JavaScript這門面向?qū)ο蟮膭?dòng)態(tài)語(yǔ)言到底是一門什么樣的語(yǔ)言。 JavaScript vs 其他面向?qū)ο笳Z(yǔ)言 它沒(méi)有使用像Java等傳統(tǒng)的面向?qū)ο笳Z(yǔ)言的類式繼承,而...
閱讀 2958·2021-11-24 09:39
閱讀 2869·2021-09-29 09:34
閱讀 3561·2021-09-24 10:23
閱讀 1746·2021-09-22 15:41
閱讀 1701·2019-08-30 15:55
閱讀 3516·2019-08-30 13:58
閱讀 2624·2019-08-30 13:11
閱讀 1669·2019-08-29 12:31