带有标签 JavaScript 的文章

在这篇文章中,我们会尝试使 JavaScript 的类具有 Python 的风格:在方法内明确地传递和使用 self 参数,但是调用时自动传入实例参数。我们将使用描述符和 Proxy 来进行实现,在此过程中来学习属性描述符、Proxy、Reflect 的概念。

this 问题

this 是 JavaScript 中一个很重要有很迷惑人的东西,我们总是要时刻思考函数内的 this 到底是谁。随便翻一翻一些开发论坛,像 JavaScript 中的 this 指的是什么 是很高频的文章(实际上,我自己也写过)。那么为什么像 Python 就没有这个问题呢。

...

查看全文

前一段时间项目上有过一个需求,可以考虑通过自动给 React 组件添加属性来实现。虽然这是一个很反模式的方式并且最终否决了这个方案,但是还是尝试研究了一下如何实现 自动给 React 组件添加属性。更确切地说,是在 webpack 打包出来的最终文件内给 React 组件添加上自定义的 props

webpack 处理 React 文件(js/jsx)使用 babel-loader,babel 就是我们的 JavaScript 编译器,它接收我们的源代码作为输入,产出编译后的可运行于浏览器的目标代码作为输出。babel 支持插件(plugin),可以视作编译器前端与后端之间的中间件:前端根据源代码生成抽象语法树(AST)等,后端根据抽象语法树生成目标代码,而插件作为中间件则是在生成目标代码之前对抽象语法树做相应的修改。

上一篇文章中,我们了解到了,页面首次渲染需要DOM和CSSOM都构建完成才能实现,也就是CSS会阻塞页面的首次渲染。那么外部JS、CSS文件的加载和DOM构建之间是如何相互影响的呢,我们将对此一探究竟。

准备工作

我们将使用一个express服务器,并延时返回请求。文件名中带有delay-n.(css|js)的文件将会在 n * 100ms后返回。整个项目源文件见这里

...

查看全文

简述JavaScript对象与继承

JavaScript是基于原型的语言,每一个对象都有一个原型对象。通过构造器函数实例化的对象可以通过浏览器实现的__proto__接口访问其原型对象(ECMA官方实现为Object.getPrototypeOf(obj)),此对象的构造器函数同样有一个属性prototype指向此原型对象。

...

查看全文

今天在使用 Vue.js 的列表渲染时,写了一个菲波那切数列函数,在输入数字 n 后,网页将渲染菲波那切数列的前 n 项,使用了ES6语法中的解构赋值,结果函数出现了一些问题:

function fibonacci(n) {  var nums = [] ...
            

查看全文