提取码:45on
很多小伙伴学习JavaScript入门简单,想要做的高级就很难。 如果能够吧以上内容都搞定差不多的话,JavaScript的高级用法就理解的差不多了。很多小伙伴是入门前端,还并不是高手,对于理解以上内容会感觉比较吃力,最上边放的资料涵盖了前端学习从入门到进阶在到高阶方方面面的学习资料。都是非常多优秀老师的成果。有着合理的学习路线,跟着这些老师的学习路线学,效率翻倍,避免学习中遇到的坑。都是一些实际工作中会遇到的问题,很有实战意义。跟着老师吧项目走一遍,肯定会有非常多的收获。
闭包的优点:
1.代码之间低耦合。怎么理解呢,,,就是说啊,我们使用闭包编写程序,一旦主流的框架被淘汰时,那么对我们的程序就影响不大。
2.局部变量能实现共享。通过闭包,我们都可以调用其中的程序,不需要知道他的执行构成。
3.调高安全性。闭包内的程序不可见,这就大大提高了安全性。
闭包的局限性:
1.调用函数时,必须先调用上一次函数才能使用;
2.内层函数的初始化,必须在上层函数之中。
闭包是个很重要的思想,所以我建议在偶们写程序的时候要多使用闭包特性,这样我们的程序会显得很高大上啊!
(三)原型特性
所谓的原型,说白了就是读对象本身的一个属性而已,因为一旦对象被创建了,那么他一定就具有了原型的属性。
我在说清楚一些,原型实际上就是一个新的内存空间,它属于函数对象的一部分,但是与我们通过调用对象所建立的空间是不一样的,他们分别是两个不同的空间,再有就是new,我们new出的空间也是独立的,所以说这三个空间是相互独立的,他们是通过地址相互连接在一起
利用原型,我们可以给对象增添属性和方法,而且通过原型添加的属性和方法具有公共性,就是说每一个调用函数,都能使用。
通过上面的例子和注释,你因该很清楚了原型如何增加属性和方法了,以及如何调用属性和方法。我要说的是为什么我们要new我们的函数对像,在前面文中说的,对函数对象的调用必须在其前面加入 new ,创建一个普通对象来接受函数对象,所以我们在使用函数对象是必须加入new。
使用原型时,我们一定要知道的几点问题:
1.我们增添的属性名和方法和对象本身的属性名和方法相同时;函数的结果以自己本身的属性和方法为准,但此时我们所增加的属性和方法依然存在对象之中,并没有消失,就是说我们通过原型增加属性的话,一定能增加过去。
2.顺序问题
主要是增加属性和new新的普通对象的顺序问题;
(1)和前后顺序无关的情况: 例子中:而着的位置不同,但不影响输出结果。
(2).与new的前后顺序有关
和前面不同,一旦new对象位置改变,结果就不能输出了。。。那是因为我们如果通过集合的形式添加属性和方法,一定要把new对象写在他的后面否则结果就不能输出了。。道理其实很简单的:
红色的箭头就是我们先增加属性在创建对象的过程,蓝色的箭头说明第二种方式是不可用的,因为我们不能在定义函数和他的原型之间返回多组属性和方法。
(3)通用型问题
与对 函数对象添加属性对比,通过原型添加的属性通用型更好,而只对函数对象添加属性的话,就只能自己使用了,其他函数对象就不能使用了。因为这种添加方式只是对函数内部空间增加属性,必须调用函数才能使用,考虑到通用性,尽量使用原型。(ps:只是建议,你可以随着性子来。。)
(四)继承特性(重点)
所谓继承,就是想要儿子具有父亲的一些特性,也就是子承父业了。在其他语言中继承是很好实现的,因为存在关键词extand,这个单词就规定了继承。但是在我们的js脚本语言中,是不存在这个关键词的,于是造成在脚本中很难实现继承的特点。
面向对象语言(oop);都具有的三个特点就是,多态,继承,封装。JavaScript是面向对象语言的一种,当然也具有这些特性了。所以说脚本中没有继承特点的,那都是错误的。
你也许会问了,,那脚本中没有关键词extand,怎么实现继承的呢? 脚本有自己的继承机制,那就是原型链。通过原型链可以实现继承的特点。