Csming

虽千万人吾往矣

JavaScript的闭包与函数重载

JavaScript的闭包与函数重载 闭包的概念 什么是闭包 说到JavaScript的闭包,需要先说一说JavaScript的作用域。 JavaScript在ECMA6之前,作用域是只有全局作用域跟函数作用域的。(这里先不涉及let和const) 函数内部可以读取器外部作用域定义的变量,而外部作用域不能直接读取到函数中定义的变量。 eg: var n = 0;function f1() &......

JavaScript的原型链

JavaScript的原型 JavaScript在ECMA6的class这些关键字出来之前,面向对象编程的方式是基于函数和原型链来实现的。这边涉及到两个东西:contructor和prototype。 本文首先从如何构造一个JavaScript的对象,再到构造函数,再到原型链的顺序来阐述。 如何构造一个JavaScript的object 在JavaScript中构造一个对象对便捷的方式如下:......

ColorfulNavigationBar

ColorfulNavigationBar 首先附上github项目地址;https://github.com/csming1995/ColorNavigationBar 之前在github上看到了一个iOS版本的彩色的菜单栏觉得很有趣,于是模仿了一套Android版本的,并且加上了回弹的效果,让动画看起来更流畅。 这个开源库主要是出于兴趣写的,花了差不多一个下午写了一下。应该还有很多漏洞......

JavaScript——DOM扩展

DOM扩展 来自javascript高级程序设计的第十一章 Selectors API和HTML 5. 选择符 API Selector API. querySelector()方法 querySelector()方法接收一个CSS选择符,返回该模式匹配的得一个元素,若找不到匹配元素则返回null。 var body = document.querySelector("body");var ......

JavaScript——DOM

DOM是什么 DOM是针对HTML和XML文档的一个API。 DOM描绘了一个层次化的节点树。 DOM允许开发人员:添加、移除、修改页面的某一部分。 现在DOM已经成为表现和操作页面标记的真正跨平台、语言中立的方式了。 DOM1级 DOM1提供了基本的文档结构及查询的接口。 节点层次 DOM可以将任何的HTML或者XML文档描绘成一个由多层节点构成的结构。 节点分为几种不同的类型。每种类型分......

关于Gradle

什么是Gradle Gradle是基于Apache Ant和Apache Maven概念的自动化构建工具。他使用一种基于Groovy的DSL来声明项目设置。 Gradle能够: 自动处理包相依关系(取自 Maven Repos 的概念) 自动处理布署问题(取自 Ant 的概念) 条件判断写法直觉(使用 Groovy 语言) Gradle的编译过程 Gradle中有两个对象:Project、T......

ECMAScript学习笔记(八)——函数表达式

JavaScript高级程序设计的第五章: 函数表达式 递归 在ECMAScript中,通过名字进行的递归,会由于函数被赋值到其他变量上,而导致错误: 1234567891011function factorial(num) { if (num <= 1) { return 1; } else { return num * fac......

ECMAScript学习笔记(七)——继承

ECMAScript依靠原型链来实现继承; 原型链 原型链,是利用原型让一个引用类型继承另一个引用类型的属性和方法。 每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。 如果,一个原型又是另一个原型的实例,那么上述关系依旧成立,如此层层递进,就构成了实例和原型的链条,就是所谓的原型链 eg: 1234567891011121314151......

ECMAScript学习笔记(六)——对象的创建

面向对象程序设计 JavaScript高级程序设计的第六章。 创建ECMAScript对象的一百种方法。 创建对象的一百种方法。 除了之前记录过的直接new一个Object然后添加对象的方法,还有对象字面量的方法。ECMAScript还有一百种方法创建一个对象。嗯。 使用Object构造函数和对象字面量的方法创建对象,会产生很多重复代码嗯,并且无法知道对象的类型。 工厂模式 12345678......

ECMAScript学习笔记(五)

面向对象程序设计 JavaScript高级程序设计的第六章。 ECMAScript的每个对象都是基于一个引用类型创建的。 理解对象 1.创建对象: 可以创建一个Object的实例,然后为它添加属性和方法。 12345678var person = new Object();person.name = "Micheal";person.age = 29;person.job = "Softwa......