JS单例模式的一种应用
来自 segmentfault 的问答,关于js构造函数的返回值的问题的讨论。
来自 segmentfault 的问答,关于js构造函数的返回值的问题的讨论。
基于 Webpack+Vue 的单页面开发过程中,准备全面尝试拥抱 ES2015 规范,尝试一些新的东西。在进行实践的过程中,感受比较深的就是 ES6 的模块机制。之前 Node 环境下实现了 CommonJS 规范的模块机制,使用 require/module.exports 进行模块的同步加载。ES6 的模块机制是什么,为什么在已有了 CommonJS 模块规范的情况下又冒出来一个 ES6 的模块机制,两者本质上以及在使用过程中有什么不同,下面针对上述问题针对对应的案例进行了详细的解释。
下题节选自 Segfaultment 的一道 JS 面试题。
实现一个函数,运算结果可以满足如下预期结果:
add(1)(2) // 3
add(1, 2, 3)(10) // 16
add(1)(2)(3)(4)(5) // 15
Javascipt中关于继承实现的关键是prototype
机制,正确的理解原型链机制可以帮助我们在复杂的场景下解决关于继承的一些问题。下面摘取了来自segmentfault上的一道关于原型链继承方面的面试题,深入分析如何正确的使用原型链实现继承。
原型链机制prototype chain
是Javascript设计中较为重要的内容,对象之间通过原型链建立彼此之间的关系。在Kyle Simpson’s所著的《You Don’t Know JS》一书中介绍了两种Javascript中组织代码的方式:OLOO(Object Linked to Other Object)
以及Prototype Design Pattern
。两种设计模式均围绕Javascript中的原型链机制给出了不同思想的解释。因此正确理解Javascript中的原型链机制至关重要。
Javascript中的this关键字向来是比较迷惑的地方。最深刻的体验就是在出现在各种面试题中的case,通过给出代码片段,写出程序片段的运行结果。如果对于Javascipt中执行环境(executing context)以及作用域链的机制较为熟悉的话,此类问题应该也不是难事。this值的绑定时机发生在函数被压入执行环境栈,真正执行之前。关于执行环境栈的相关问题可以参考上篇博文 《关于javascript中作用域与执行环境的解读》
。
本文中介绍了javascript中创建对象的几种方式,并给出了几种创建方式的异同。(通俗的讲,如何在javascript“生出一个对象”)
原型链机制是javascript中实现继承的关键。对于prototype对象(原型对象)的理解至关重要。下文根据自己在开发中以及看书过程中对于prototype对象的理解整理了一些小tip。
使用JavaScript实现数组去重的四种方式思考
JavaScript高级编程中关于执行环境与作用域的问题在第四章有过提及,但是交代的不是很明确,因此查阅了网上各种资料,对于执行环境以及作用域有了一个初步的认识。