js不好學並不是因為它難,而是因為它容易混淆

2021-09-11 13:01:46 字數 1345 閱讀 5766

這段時間我主講的前端零基礎課,讓我感覺js這東西是越來越簡單了。你當然可以說我這是越講課越熟。確實是有這部分因素,但更主要的是,我發現js中雖然有許多的概念各不相同,但在具體的**實現中,基本都是非常類似,甚至是完全一樣的。這就導致前端新人在學習的過程中,學著學著,就分不清誰是誰了。

例如在27號的課程中,主要講js的自定義物件。在課程中提到了,函式,方法,物件,又加個構造器,,這就已經四個概念了,但使用**表現出來,

function abc(){

console.log('abc')

全都是一樣的,就是乙個名為abc的function,你單獨的寫乙個,

function abc(){

console.log('abc')

這就是個孤立的函式。

function abc(n){

console.log(n)

這時,你可以稱,它是個接收引數並輸出的方法。

但同時,函式還是個物件!因為要把它賦值給變數然後呼叫

function

function abc(){

console.log('abc')

new abc();

此時,這個abc函式又是個構造器

那麼它們什麼時候是函式,什麼時候是方法,什麼時候是物件,又是什麼時候是構造器?全看你想怎麼去使用它們。

但對於新人來講,有時就暈了,明明剛才還說是宣告乙個函式,怎麼到這就變成構造器了?

再看什麼私有方法,公共方法,全域性變數,區域性變數,

其實不過是寫在函式外面或是裡面的匿名函式和變數而已。說到底就是函式和變數。但卻因為使用方式和環境的不同,搞出這麼多名字。

這在我個人看來,還是因為js太過簡單,但又要承載複雜的功能,只能是人為的用各種手段和名稱去區分。

js還有些明明很簡單,我總覺得各種教程寫的有些過於複雜了,也許是我理解的還不到位吧。

不說別的,就單說prototype和constructor,無非是函式裡有個prototype屬性,然後prototype裡有個物件,這個物件裡有個constructor,然後這個constructor的值是它所在的那個函式。。,就像這樣:

簡單吧,就是個乙個套著乙個的關係。但看網上的教程,什麼引用,包含,指向,畫的圖也左一道又一道的,看不懂。

再來說閉包,啥叫閉包?

圖上畫的很清楚,那個返回的子函式及其作用域,就是閉包。

但看看網上關於閉包的資料,很多寫的,,反正我開始時在學js的時候,看閉包是很久也理解不了。

就不多說了,js當然也不簡單,依然是很複雜的東西,需要大量的**練習才能掌握。但既然我已經懂了,明白了。那麼在我這裡,就是怎麼簡單怎麼講,能一句話說明白就不用二句話。

在我看來,有時間多講講**實現,比我費挺大勁給你講明白乙個概念,要重要的多。

放棄你,並不是放棄愛你

痛苦的不是過去,而是記憶.回首過往的點滴,這段感情就像乙個沙漏,哪怕自己投入的再多,付出的再多,那沙子還是會一點點的流走,到最後握在手裡的只是一縷清風,和自己早已被風吹幹的淚痕 只有深愛的人才會讓你笑的最甜,卻也讓你痛的最真!回憶固然傷感亦美好,不如把這點唯一的美好,放在心底收藏至永遠.至少,我還有...

物件導向並不是必要的

程式開發並非一定要物件導向不可,物件導向是一種方式,但是不是唯一的方式,這種方式很多時候有用,不代表任何時候都是最高效的,更不是唯一的真理。物件導向將相關的狀態屬性和操作方法放在乙個實體中,起到了歸類和分而治之的作用。對於乙個系統來說,這個是最根本的方法。但是物件導向的分而治之並不完美。面向過程也有...

物件導向並不是必要的

程式開發並非一定要物件導向不可,物件導向是一種方式,但是不是唯一的方式,這種方式很多時候有用,不代表任何時候都是最高效的,更不是唯一的真理。物件導向將相關的狀態屬性和操作方法放在乙個實體中,起到了歸類和分而治之的作用。對於乙個系統來說,這個是最根本的方法。但是物件導向的分而治之並不完美。面向過程也有...