有幸和一位大神聊过,发现自己有好多地方都略显不足。
函数式编程和面向对象式编程?
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
将业务逻辑细化,抽象,封装成一个个功能函数,并借助语言自带的高阶函数api,将整个业务流程转化为函数之间的相互调用,这就是函数式编程。
什么是对象?
对象就是属性和方法的集合,所有的数据类型都是对象,他们都有自己的默认支持的方法。
Array.prototype.slice.call
查看jQuery的源代码,会看到类似:
slice = Array.prototype.slice,
或
array = Array.prototype.slice.call( array, 0 );
的代码。
干嘛用的呢?
作用就是:将类似数组的对象转换为真实的数组。
真实数组具有slice方法,可以对数组进行浅复制(不影响原数组),返回的依然是数组。
类似数组虽然有length属性,可以使用for循环遍历,却不能直接使用slice方法,会报错!但是通过Array.prototype.slice.call则不会报错,本身(类似数组)被从头到尾slice复制了一遍——变成了真实数组!
上一集demo中函数内部的arguments是应该都熟知的类似数组,于是:
Array.prototype.slice.call(arguments)
bind函数,改变上下文
|
|
为IE6~8自定义bind方法
|
|
很多原理性的知识点无法从碎片连成面
看来在接下去的时间里,必须再好好学习基础知识。