js不好学并不是因为它难,而是因为它容易混淆

这段时间我主讲的前端零基础课,让我感觉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当然也不简单,依然是很复杂的东西,需要大量的代码练习才能掌握。但既然我已经懂了,明白了。那么在我这里,就是怎么简单怎么讲,能一句话说明白就不用二句话。

在我看来,有时间多讲讲代码实现,比我费挺大劲给你讲明白一个概念,要重要的多。

原文发布于微信公众号 - web前端教室(webfeel)

原文发表时间:2017-03-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web前端教室

网易云课堂公开课-Promise【文字版】

今天的网易云课堂的公开课已经结束,因为是第一次,所以有些操作也不太熟练,下面是本次公开课的文字内容。

16620
来自专栏我的博客

PHP7特性

1、标量类型声明 2、返回值类型声明 3、null合并运算符 $username = $_GET[‘user’] ?? ‘nobody’; $usern...

40550
来自专栏黑泽君的专栏

java基础学习_IO流03_字符流、IO流小结、案例_day21总结

10220
来自专栏点滴积累

Python扩展方法一二事

前言 跟着一个有强迫症的老板干活是一件极其幸福的事情(你懂的)。最近碰到一个问题,简单的说就是对一个对象做出部分修改后仍然返回此对象,于是我就写了一个方法,老板...

37960
来自专栏一“技”之长

Swift4语法新特性 原

      随着iPhone X的来到,iOS11的发布,Swift语言也更新到了第4个版本。在Swift4中,无论是代码风格还是编程理念都更进一步的融合了许多...

28030
来自专栏xingoo, 一个梦想做发明家的程序员

MFC中注释含义

下面是 CStdioFile 类的部分列表,其中使用了 MFC 在其类中按类成员的用法划分它们时所采用的大多数标准注释: class CStdioFile :...

20570
来自专栏喵了个咪的博客空间

zephir-(12)php函数和异常处理

#zephir-php函数和异常处理# ? ##前言## 先在这里感谢各位zephir开源技术提供者 经过了一个多月的学习,zephir的文档译文和基础讲解也将...

36960
来自专栏信数据得永生

JavaScript 编程精解 中文第三版 二、程序结构

434150
来自专栏企鹅号快讯

动态语言的灵活性是把双刃剑:以 Python 语言为例

新媒体管家 关键时刻,第一时间送达! 本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(par...

27770
来自专栏做全栈攻城狮

电脑小白自学软件编程-.Net语法基础之循环语句,纯技巧干货

课程总目录:因头条无法自定义目录,大家关注:“做全栈攻城狮”微信公众号。回复“.net目录”,即可获取。微信公众号也包含大量学习教程,等你来~

15740

扫码关注云+社区

领取腾讯云代金券