再说说解决办法的原理:我们让for循环内部的函数立即执行 这回会导致该函数运行三遍 并生成3个VO 遵循并利用闭包原则 这3个VO在执行环境从栈中被弹出后依然得以保留 相当于3个快照版的VO 当我们点击绑定事件并激活该函数时 它的自由变量i会在快照版的VO中找到对应数字的1 2 3
2019-02-10
经过我的不懈努力,我终于弄明白了。下面是心得:这段代码会被执行3次 但var i处于全局作用域 每次循环都会覆盖i的值 当我们点击绑定事件时 它会访问自由变量i 并在父级作用域 也就是全局作用域下找到已经为4的var i,所以点击几次都是4
2019-02-10
我觉得讲的很好,如果直接告诉你原理,你可能没印象,原理要自己去找,自己去推敲,你才能真正明白。老师讲的全是干货,每一句都要耗费精力去理解,所以会觉得学起来很累,有些视频就简单多了,挺起来不累,但是你能学到多深呢?
2019-02-09
老师讲的很好,但是真的太枯燥了,这是典型的知识精华学习,没有任务驱动,项目驱动,全是知识点,学的快吐了,但是要坚持,不多了不多了,还有几章,555555,学完就能去搞点前端项目了,话虽如此,干货满满,现在再去看别人写的技术帖子,都能看得懂了。感谢老师。
2019-02-09
当通过new关键字来操作函数MyClass时,MyClass中的代码this所以会指向一个空对象,而不是指向window,这个空对象的原
型会指向MyClass.prototype,同时this.a等于为空对象添加了一个属性a并赋值为10,当MyClass中代码走完后,就要返回一
个值,但foo函数体内并没有定义return,所以默认返回this,而this指向的这个对象最终会赋值给obj。最后我们会看到obj
就是一个原型指向MyClass.prototype且包含了值为10的属性a的对象。
型会指向MyClass.prototype,同时this.a等于为空对象添加了一个属性a并赋值为10,当MyClass中代码走完后,就要返回一
个值,但foo函数体内并没有定义return,所以默认返回this,而this指向的这个对象最终会赋值给obj。最后我们会看到obj
就是一个原型指向MyClass.prototype且包含了值为10的属性a的对象。
2019-02-09
以下是我对构造器中的this的结论:通过new关键来操作MyClass函数时,MyClass中的this所以会指向一个空对象,而不是window,该空对象的原型会指向foo.prototype同时this.a等于为空对象添加了一个属性a并赋值为10,当MyClass中代码走完后,就要返回一个值,但因为MyClass中没有定义return,所以默认返回this。最后obj会接收MyClass返回来的this,而这个this就是原型指向foo.prototype同时包含一个值为10的属性a的对象。
2019-02-09
老师讲的非常好,语速很快,同学们在学习的时候一定要反复听,甚至可以用记事本把老师说的话都记下来然后仔细推敲,老师讲的大部分内容逻辑都是十分通常的,然后自己一定要把所思所想付诸于代码,通过代码去验证老师所讲和自我所思,这样才会确定自己是不是真的听明白了,所以学习实际上是一种交互的行为,而不是单方面的讲以及单方面的听,一定要跟老师的代码互动起来,这样才能真正学明白。目前为止,我觉得都很通常,希望后面也能愉快的继续下去,直到学完。不知道学完这个,JS能达到什么样的水平呢?有没有人解答一下。
2019-02-09
5分29秒:那么这一点上和一般的对象属性作为函数对象也是类似的
。这句话是不是说错了?有点不明所以。老师是不是想说,那么这一点上和一般的函数对象作为对象属性也是类似的。我感觉是说混了。
。这句话是不是说错了?有点不明所以。老师是不是想说,那么这一点上和一般的函数对象作为对象属性也是类似的。我感觉是说混了。
2019-02-09
简单的说吧,函数声明会被优先处理这一特点跟java的static很像,当然,底层是不是一回事我就不清楚了。而函数表达式就先声明一个函数变量,再给它赋值,所以它会被当作一个普通的变量来处理吧。
2019-02-07
好吧,我现在终于明白了,原来countMap1 = {},这玩意不是数组啊,我当成java语法了,原来这是js里的对象啊,哈哈哈。明白了,把数据类型当作key,把出现次数当作value,然后对比每一种数据类型是否存在以及出现次数是否相同。好吧,确实很清奇。比我的方法要炫酷,哈哈。