- 博客(7)
- 收藏
- 关注
转载 __proto__ 和 prototype 之间的关系
__proto__ 和 prototype 之间的关系一、所有构造器/函数的__proto__ 都指向 Function.prototype 他只是个空函数Number.__proto__ === Function.prototype // trueBoolean.__proto__ === Function.prototype // trueString.__proto__ === F...
2019-03-15 16:22:49
343
1
原创 setTimeOut()传参规则
setTImeOut可以传入多个参数, 并且能在异步操作中取到相对应的值var msg1 = 'xiuxiu'var msg2 = 'dudu'setTimeout((msg1, msg2) => { console.log(msg1, msg2)}, 1000, msg1, msg2);var msg1 = '123'var msg2 = 'ab'这样可以在异...
2019-03-15 16:21:16
1302
原创 配置对象
配置对象配置对象模式是一种提供更简洁的API的方法,尤其是当你正在写一个即将被其它程序调用的类库之类的代码的时候。addPerson("Bruce", "Wayne", new Date(), null, null, "batman");传一大串的参数真的很不方便。一个更好的办法就是将它们替换成一个参数,并且把这个参数弄成对象;我们叫它conf,是“configuration”(配置)的缩...
2019-03-15 16:17:30
1064
原创 函数缓存:memorization模式
函数属性——Memoization模式函数也是对象,所以它们可以有属性。事实上,函数也确实本来就有一些属性。比如,对一个函数来说,不管是用什么语法创建的,它会自动拥有一个length属性来标识这个函数期待接受的参数个数:function func(a, b, c) { }console.log(func.length); // 3传一个参任何时候都可以给函数添加自定义属性。添...
2019-03-15 16:14:33
472
原创 函数性能提升:条件初始化
条件初始化条件初始化(也叫条件加载)是一种优化模式。当你知道某种条件在整个程序生命周期中都不会变化的时候,那么对这个条件的探测只做一次就很有意义。浏览器探测(或者特征检测)是一个典型的例子暂时理解不了,需要看<<你不知道的javascript>>举例说明,当你探测到XMLHttpRequest被作为一个本地对象支持时,就知道浏览器不会在程序执行过程中改变这一情况,...
2019-03-15 16:13:08
119
原创 立即初始化对象
立即初始化对象格式还有另外一种可以避免污染全局作用域的方法,和前面描述的立即执行的函数相似,叫做“立即初始化的对象”模式。这种模式使用一个带有init()方法的对象来实现,这个方法在对象被创建后立即执行。初始化的工作由init()函数来完成。下面是一个立即初始化的对象模式的例子:({// here you can define setting values// a.k.a. co...
2019-03-15 16:11:59
147
原创 JavaScript自定义函数
自定义函数自定义函数我们动态定义函数,并将函数赋值给变量。如果将你定义的函数赋值给已经存在的函数变量的话,则新函数会覆盖旧函数。这样做的结果是,旧函数的引用就丢弃掉了,变量中所存储的引用值替换成了新的。这样看起来这个变量指代的函数逻辑就发生了变化,或者说函数进行了“重新定义”或“重写”。说起来有些拗口,实际上并不复杂,来看一个例子:var scareMe = function () { ...
2019-03-15 16:10:30
553
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人