00:01
好,那我们这次课程的,嗯,最重要的目的肯定是要需要大家能够去呃,学会手写promise的实现,但是你要想手写你是不是要把promise的所有相关的一些重要东西都搞清楚,但promise相关的东西呢,又会涉及到一些其他的东西,那我们先做的第一件事情是先讲一些跟看似跟promise没有太大关系的几个小点。啊,我们来看一下,一共有三个小点,我们一个一个来看,这些小点呢,在后面我跟大家去讲promise的相关东西的时候都能体现出来。来。第一个小点说的是啊,我们要区别两个概念。一个叫实例对象,一个叫函数对象。实例对象大家应该都有这个概念,但函数对象大家不知道有没有好来。来啊,主要是区别这概念啊,识别这两个概念啊,识别这两个概念啊,代码呢,都不需要大家太写,拿过来我们来看就行。
01:08
这个代码呢,都是最最简单的基本代码啊,我们先来看,首先我第一步这是干了个什么事情,是不是定义了一个函数,也就说这个FN是个函数吧,啊没问题,那FN现在如果我就看上面的,我就说它是公的函数,这样好吗?现在我来说它就是构造函数吗?不能。不能,什么时候我才能确定它真的是构造函数呢?对,此时这个大写FN是什么?是构造函数?当然。有时老师。我不写了个大写F吗?不写个大写的什么吗?咱们前面说过吗?大写的函数不就是构造函数吗?那个不一定,那我一定是用故函数去使用,我可不可以直接调那个只是起一个暗示作用。
02:04
但是暗示最终暗示的对一定对吗?不一定,也就说是不是构造函数得看你怎么用是不是,也就是说你在调用执行这个函数的时候,左边有没有加什么。六是不是,而六执行这个函数返回的,我们称为什么实例对象,那也就是说这个小写FN是一个什么实力对象是吧?这个能不能懂啊,能懂,但实力对象其实我们一般会简称为什么对象。一般我们说对象的时候,是不是指的是函数的使命对象,比如说我说你要整一个坡对象什么意思?是不是首先你得你得有一个P损的构造函数是吧?接着你会去利出来的是不是才是实例对象,才是我们说的P损对象,也就说我这边假设搞一个P,那我们会说这个P是不是就是个破损对象,完整的说法应该叫破损的什么实力对象。
03:14
能不能懂,你一定要知道完整说法和解说它们之间是一个什么样的关系啊好,没问题,那没问题之后,下面来看下面这个语法,FN.protect怎么理解这个语法,先别说功能。你要说圆形就要说功能去了,对这个点啊,也就是说我怎么知道我在使用一个函数,很简单,我的括号左边肯定是个函数。能听懂不?我的括号左边无论你写什么,比如说你写一个A减B减C括号。那我就知道这个左边的这个表达式的值是个什么函数,你比如说我和A啊括号啊,中括号啊,小括号是不是,我首先是不是得推出A是个什么函数,还能知道什么呢。
04:14
它的返回值是个什么数组?还能知道什么呢?数组的第一个元素是什么函数?是不是我要能再能加括号了,那说明这个函数的返回值是什么,还是函数,也就是说在啊,作为一个程序员,你要有一个能力,什么能力呢?看到别人的代码,应该从语法上能看懂它的数据类型,你连数据类型都看不懂,那功能没法说。比如说老师我没看到数据群功能,我记一记,看一看,搞一搞不就好了吗?是啊,如果是相同的,你多搞几遍就会了。那叫事倍功半,能听懂不,当你要这个技能掌握了,你去学任何新的东西都是非常有用的,当然你这个东西的不让练,你有这个,你有这个意识经常的去想。
05:10
先看懂语法,其次才看懂功能,能听懂不啊,不是一上来就看功能,而是先看语法,语法先懂了才行。好,那这个地方啊,我们刚刚说括号的左边必然是函数是不是,那点的左边呢,必然是对象是不是。是,那是不是说我现在FN还是个函数吗?不是,它的角色是个什么对象,但它本身是函数吧,那FN就称为函数对象。你说什么是函数对象?告诉我,我什么时候才称一个函数为函数对象呢?我们要知道函数本身就是一个对象是不是?但是啊,我要加括号的时候能体现它对象特点吗?不能,什么时候才能体现它对象特点点对,当我将一个函数作为对象使用时。
06:19
那我们就称它为什么函数对象,我什么时候是将一个函数作为对象使用啊,是不是点呐。能不懂,说白了是不是超出它的属性或者方法,你比如说下面这个大写FN点半的,我们是不是函数对象,有一个话叫半的方法,那你想想看,此时此刻我的FN还是个函数的角色吗?是个对象的角色,那我们就需要给他一个称谓吧,那我在读代码的时候,我就在说,哎,我现在是不是在去调用FN函数对象的什么方法方法?
07:02
单是不是只有函数对象才有半的方法法,一般的对象有半的方法吗?你说实例对象有半的方法吗?有没有,也就说我整一个大括号,我另一个啊,也就我的这个,我的这个FN小写FN他也办的话吗。这不是个实力对象吗?有吗?他有没有啊,办的话不知道什么意思吗?是不是改变这思相啊,当然一些细节我现在先不跟大家去详细的说,只有函数这样才有包括什么,括包括了什么apply。都是函数对象才有,对不对。你说我要问大家一个问题,延伸的问题。这个方法被定义在哪了,为什么所有的函数对象都有这个方法,那说明它在哪,在哪个位置大写方形的什么圆形上,这能听懂,不只有在它大写方程,因为我们所有的函数是不是都是大写方形的实例,实例是不是去找圆形对象上的方法,听懂吧,听懂当然我们这个啊,如果比如说我整个库。
08:18
或什么意思?这个单词什么意思?啊,如果原始的意思,最原始的意思应该打电话,但是在编程世界里面肯定不是打电话了,是调用,是调用说扩method什么意思。括method括方什么意思?调用方法,调用什么函数?从语法上来说,我是不是在去执行函FN函数对象的括号法,但是从功能上来说,最终它是不会执行这个函数。是不是道理,而且指定是为第一个参数的值啊,那也就是说此时我的FN是一个什么?
09:08
FN是什么?你说对象的时候,别人哪知道是什么对象呢?你在说对象的时候,我就以为实例对象知道不?我们刚刚说过了,实例对象简称为对象是不是它函数对象还能简称为对象吗?不然那不就混了吗?还记得最快的一点知识吧,比如说这个代码还记得不?嗯,那种男的代码,大家忘了,这个代码应该要记得啊,啊,这个是不是这会向外暴露了一个什么类型的东西,现在我问你这个东西是个什么类型哦,我叫个对象是个什么,这想半天我刚刚都跟他说了,括号的左边是函数,点的左边是对象,就这么简单事情,是个什么函数啊?
10:02
说白了,Query它从语法上来说,它是一个函数,对不对。我现在是不是将它作为函数在执行,是不是根据这个选择器去查找动物元素,好,那此时这个是干嘛的?还记得吧,功能用来发加个请求的吧,而且发的这个get的请求吧,那此时从语法上来说他是干嘛呢?是不是调用多了弧也接块函数对象的get方法?是不是你光知道功能不行的,你得知道语法,知道语法是基础,才延伸下一步才是知道功能。也就是说,我既可以将函数作为函数使用,也可以将函数作为什么对象使用,那此时我是不是称它为几块函数的一项,而这个称为什么这块什么函数?
11:06
很简单一个事情,其实问题很简单,括号左边是函数,点的左边是对象,就这么简单一个事,对不对啊,只是说它是个实例对象呢?还是个函数对象的问题是不是?是概念吧?实例对象可以减缩,但函数对象你还能解缩吗?不能。这个非常关键啊,有问题没问题啊行。嗯。
我来说两句