JavaScript中的对象、constructor属性、prototype属性对比分析
前言 首先想说的是,这篇文章的题目准确怎么定我就考虑了不少时间。想过“JavaScript中的对象及其constructor属性和prototype属性”,想过“JavaScript中的对象、构造函数对象(constructor)和原型对象(prototype)”等等,但总觉得不够清楚。说实话现有的这个题目也不一定是很好的,只是相比较之下,选择一个“三者相对独立”的说法,这样就不会有先入为主的
前言 首先想说的是,这篇文章的题目准确怎么定我就考虑了不少时间。想过“JavaScript中的对象及其constructor属性和prototype属性”,想过“JavaScript中的对象、构造函数对象(constructor)和原型对象(prototype)”等等,但总觉得不够清楚。说实话现有的这个题目也不一定是很好的,只是相比较之下,选择一个“三者相对独立”的说法,这样就不会有先入为主的
概述 在Javascript中,基本类型(null, undefined, number, string, boolean, symbol)是通过值传递方式进行,而复合类型(object, array, function)则是通过引用传递方式进行。 但是,由于Javascript工作机制所决定,在js中,引用指向的其实是值,而无法指向其他引用,这和其他语言中的指针并不相同。 其实,两者都可
前言 JavaScript是一种面向对象(OO)的语言,但由于ECMAScript没有类的概念(ES6引入关键字class),所以在js中创建对象的方法也与其他基于类的语言有所不同。本篇总结在JavaScript中创建对象的7种方法;并在此基础上,总结实现继承的6种方式。 JavaScript中对象的基本概念创建对象的2种基本方法 创建一个Object实例123456var person =
综述 Generator(生成器)函数是ES6提供的一种异步编程解决方案,而yield则是配合生成器函数使用的。 Generator函数定义 function* 声明(function关键字后跟一个星号)定义一个generator(生成器)函数,返回一个Generator对象。 语法function* name([param[, param[, ... param]]]) { statem
概念 Base64编码是网络传输中的一种常见编码方式。可用于传输任意的8bit(字节Byte)数据,经过编码后的数据不是直接可读的,但也由此保证了一定的安全性和很好的可移植性。这种编解码的算法十分简单,编码后的数据大小仅增加三分之一左右(原因后续讲到),因而不会对传输造成过大压力。 我们需要明确的概念是,Base64编码本质上是将二进制数据编码为文本字符。而这些二进制数据的来源则可能有很多,
前言 webpack是一款极为灵活的前端模块打包构建工具。其诞生和流行主要是由于以下这几个发展趋势: 为了完成更加复杂的交互逻辑,一个网页中使用的js代码数量越来越多; 即便有了更多代码,却要求使用中有更少的整页面重新加载; 现代浏览器提供了更多的API接口。 基于这样的情况,大量代码就需要能够被良好地管理起来,像webpack这样的模块系统就为我们将代码切分为若干模块提供了很好的选择
前言 proto、[[prototype]]和prototype三个概念及相关内容是javascript比较复杂且容易混淆的内容。本文尝试进行总结和分析。 prototype相关介绍 待续。 __proto__与[[prototype]]相关介绍 待续。 一张图分析三者的关系 一系列案例分析12345function Foo(){ console.log(1);}
前言 GitHub是一个十分著名并相当活跃的社区,每天有世界各地的程序员在这里分享与交流。作为开源项目或者技术分享,我们当然可以将代码维护在这里。但是对于内部项目,我们应该具备私有仓库来进行维护。GitLab就是一个很好的选择。本文主要包括以下几个方面: Git安装与使用 GitLab相关知识介绍 GitLab搭建配置的完整过程 GitLab-CI相关知识介绍 GitLab-CI安装配置的完
前言 为了顺利进行web开发,一套完整易用的开发环境是十分必要的,这可以大大提高团队的合作和开发效率。这里说的开发环境包括IDE,数据库,开发语言组件,版本控制工具等一系列内容。最近在使用的是比较流行的php开发架构,在windows下,无疑推荐WAMP + MySQL-Front + phpStorm,WAMP集成了Apache、MySQL、PHP,可以免除许多安装配置的问题。这样的环境在具体开发中是没有什么问题的,但是当项目上线并且需要版本维护时,我们还是要在Linux系统上进行部署。 基于这样的需求,最近搭建了一套完整的LAMP环境并测试通过,可以实现代码版本控制,APP端API测试调用,项目自动化部署持续集成(CI)。包括的主要内容有:
前言 路由是单页应用中十分重要的概念。具体在react中,react-router为我们提供了一套完整的路由机制。 概述 项目history相关文档主页:Histories。文档的讲解十分详细。本文只是通过在实际项目中history的状态变化进行简单小结。以dva应用为例,经过这样的配置后,容器组件可以在props中拿到history对象和相关参数。 表现如上所示,history中包含了一