对《JavaScript Patterns》和《Learning JavaScript Design Patterns》的一些总结,大部分是以链接的形式链接到更详细的笔记
感谢 汤姆大叔的关于设计模式的文章 和工作室小伙伴东帅,我们的讨论总能迸出点什么,这是他关于 Java Design Patterns 的 repo
继续阅读 »
写在前面
废话不多说,请看下面3道题,把6个console.log()的答案写下来,然后对照着在Console控制台里敲一遍,校验一下结果。
more
代码片段
```
var A = function() {};
a.prototype = {
num : 1,
text : 'aaa'
};
var x = new A();
// 第一题
console.log(x.num);
console.log(x.text);
// --这里是分割线--
var y = new A();
A.prototype = {
num : 2
};
// 第二题
console.log(y.num);
c
继续阅读 »
原型链继承
让构造函数的原型对象等于另一个类型的实例,利用原型让一个引用类型继承另一个引用类型的属性和方法
```
function SuperType()
{
this.property=true;
}
SuperType.prototype.getSuperValue=function(){
return this.property;
};
function SubType()
{
this.subProperty=false;
}
//继承SuperType
SubType.prototype=new SuperType();
SubType.prototype.getSubValue=f
继续阅读 »
前言
在对Module模式有个熟悉的了解之后,我们来认识一个稍有改进的版本——ChristianHeilmann的Revealing Module模式。
模式的由来
原来的Module模式可能无法实现这样的需求:
当我们从另一个方法调用一个公有方法或者访问公有变量时,必须要重复主对象的名称。而且使用Module时必须要切换到对象字面量表示法来让某种方法变成公有方法。
我们需要的可能是这样的一个模式:
能够在私有范围内简单定义所有的函数和变量,并返回一个匿名对象,它拥有指向私有函数的指针,该函数是它希望展示为公有的方法。
有点拗口,还是上代码吧 (☆_☆)
more
代码
```
var myRevealingModu
继续阅读 »
content
{:toc}
记录一下阅读蝴蝶书的笔记,本篇为书中最后一部分:方法、代码风格、优美的特性、毒瘤、糟粕等。
方法
这一章主要介绍了一些方法集。这里写几个我不太熟悉的方法和要点吧。
array.join()
继续阅读 »
童鞋们,请准备好迎接 Web 开发历史上一个重大时刻。。。
[鼓声响起]
JavaScript 有了原生的 Promise!
[漫天的烟花绽放,人群沸腾了]
这时候你大概是这三种人之一:
- 你的身边拥挤着欢呼的人群,但是你却不在其中,甚至你还不大清楚“Promise”是什么。你耸耸肩,烟花的碎屑在你的身边落下。不过不要担心,我也是花了多年的时间才明白 Promise 的意义,你可以从这里开始。
- 你一挥拳!太赞了对么!你已经用过一些 Promise 的库,但是所有这些第三方实现在 API 上都略有差异,JavaScript 官方的 API 会是什么样子?请看这里!
- 你早就知道了,看着那些欢呼雀跃的新人你的嘴角泛起一丝
继续阅读 »
引用类型
Object类
```text
ECMAScript中的所有类都是由Object类继承而来。
Object类具有下列属性:
Constructor:对创建对象的函数的引用(指针),对于Object类,该指针指向原始的Object()函数
Prototype:对该对象的对象原型的引用。
Object类还有几个方法:
1、PropertyIsEnumerable(property):判断给定的属性是否可以用for...in语句进行枚举
2、ToString():返回对象的原始字符串表示。
3、ValueOf():返回最适合该对象的原始值。对于许多类,该方法返回的值都与toString()的返回值相同。
继续阅读 »
面试或被面试时基本都会涉及到这个最原始的 JavaScript 基础问题,试想一下您有没有在某些时候向别人解释这些概念时,把自己给绕进去了;网络上偶遇一篇英文文章,细读之后觉得有参考价值,文章不长,就顺手翻译了一下,希望某些同学可以用的上。
原文文中的 Scope 翻译成中文是“变量作用域”,译文某些地方直接简称为“作用域” ,Closure 翻译后是“闭包”。Rebort Nyman 的原文是 Explaining JavaScript Scope And Closures,某些不清楚的地方可以直接参考原文。
以下是译文
背景
很多文章或博客都在试着解释作用域和闭包,但大多数都没有解释的很清楚(crystal-clear)
继续阅读 »
小函数蕴含着大学问:函数节流之水龙头与弹簧、尾递归优化、展开参数函数、异步化函数等,整理了几个有趣的js函数,后续还会增加。
函数节流:水龙头与弹簧
什么是节流,请自行百谷
Throttle:这种方式是类似水龙头,当水滴足够大时水滴就会掉下来;类似的,当时间超过某个timeout的时候就执行函数
```js
var throttle = function(fn, timeout) {
var last = new Date().getTimes();
return function() {
var curr = new Date().getTimes();
if (curr - last >=
继续阅读 »
语法
区分大小写、变量弱类型、行尾分号可有可无、注释为双斜线、括号表明代码块
变量
变量用var声明,变量的命名规则:第一个字符必须是字母、下划线或美元符号;余下的字符可以是下划线、美元符号或任何字母或数字字符。
变量命名规范:
Camel标记法:首字母小写,接下来的单词都以大写字母开头。例如:var **m**y**T**est**V**alue=0,**m**y**S**econd**T**est**V**alue="hi";
Pascal标记法:首字母大写,接下来的单词都以大写字母开头。例如:var **M**y**T**est**V**alue=0,**M**y**S**econd**T**est**V**alu
继续阅读 »