2014-03-12 W.Y.
当你在JavaScript中定义一个函数,它有一些预定义的属性,其中之一就是令人迷惑的原型。本文将详细解释什么是原型,以及为什么要在项目中使用它。 什么是原型 对象初始化时原型是一个空对象,你可以将任何其他对象添加到原型上。 ``` javascript var myObject = function(name){ this.name = name; return this; }; console.log(typeof myObject.prototype); // object console.log(myObject.prototype); // Object {} myObject.prototy 继续阅读 »
2016-09-19 曹强
this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, javascript function test(){ this.x = 1; } 随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。 more 下面分四种情况,详细讨论this的用法。 情况一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。 请看下面这段代码,它的运行结果是1。 javascript function test(){ this.x = 1; alert(this.x) 继续阅读 »
2016-09-10 曹强
写在前面 singleton模式是被熟知的原因是因为它限制了类的实例化次数只能一次。从经典意义上来说,singleton模式在该实例不存在的情况下,可以通过一个方法创建一个类来实现创建类的新实例;如果实例已经存在,它会简单返回该对象的引用。 singleton不同于静态类(或对象),因为我们可以推迟它们的初始化,这通常是因为它们需要一些信息,而这些信息在初始化期间可能无法获得、对于没有察觉到之前的引用的代码,它们不会提供方便检索的方法。这是因为它既不是对象,也不是由一个singleton返回的“类”;它是一个结构。 思考一下闭包变量为何实际上并不是闭包,而提供闭包的函数作用域是闭包。在Javascript中,singleton 继续阅读 »
2016-09-10 曹强
前言 在对Module模式有个熟悉的了解之后,我们来认识一个稍有改进的版本——ChristianHeilmann的Revealing Module模式。 模式的由来 原来的Module模式可能无法实现这样的需求: 当我们从另一个方法调用一个公有方法或者访问公有变量时,必须要重复主对象的名称。而且使用Module时必须要切换到对象字面量表示法来让某种方法变成公有方法。 我们需要的可能是这样的一个模式: 能够在私有范围内简单定义所有的函数和变量,并返回一个匿名对象,它拥有指向私有函数的指针,该函数是它希望展示为公有的方法。 有点拗口,还是上代码吧 (☆_☆) more 代码 ``` var myRevealingModu 继续阅读 »
2016-10-12 曹强
迭代器模式是指提供一种方法,顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心内部构造,也可以按顺序访问其中的每个元素。 jQuery中的迭代器 迭代器模式无非就是循环访问聚合对象中的各个元素。比如jQuery中的$.each函数,其中回调函数中的i为当前 索引,n为当前元素,代码如下 $.each([1, 2, 3], function(i, n) { console.log('当前坐标:' + i); console.log('当前值:' + n); }); 然而,作为一个合格的前端开发者,我们不应该只是会用,而 继续阅读 »
2016-09-08 JustWe
作者 :刘丰恺 作者博客:若梦浮生 转载需征得作者本人同意 之前试着在Android平台封装了一个轻量级的游戏开发框架JustWeEngine ,因为是轻量级的所以也没想太多,很多地方的处理都不太够,比如关于碰撞事件的处理,就是一个简单的On2的遍历,前一阵还被吐槽了233333。 其实优化On2碰撞的思路是一而贯之的,就是不去处理根本不可能撞在一起的对象。所以就文章讨论一下我了解的在游戏开发中经常被使用的碰撞机制。 示例图 图示是使用了四叉树进行碰撞判断的一个图示,变成紫色的是从四叉树中拿取的离我最近的可能碰撞对象,这里我们只需要处理最近的四个对象就可以了,这个demo感谢F 继续阅读 »
2017-05-06 张炎泼
mdtoc start 表现 解决方法 定位问题过程 gdb-python: 搞清楚python程序在做什么 准备gdb 接入gdb 查看线程 查看调用栈 coredump 其他命令 pyrasite: 连接进入python程序 psutil 查看python进程状态 guppy 取得内存使用的各种对象占用情况 无法回收的对象 不可回收对象的例子 🌰 objgraph 查找循环引用 继续阅读 »
2015-05-07 Brian Li
我们知道在Java在所有类的父类是Object,容器自然也不例外。因此容器都有toString()方法,并且覆写了该方法,使容器生成的String结果能够表达容器自身,以及容器所有包含的对象。例如ArrayList的toString()方法,它会遍历ArrayList中包含的所有对象,调用每个对象的toString()方法。 继续阅读 »
2015-10-14 Jason Liao
在大部分的语言中,都是类和对象的概念,类继承于其他类 但是在 JavaScript 中,继承是基于原型的,这意味着我们没有真真切切的 "类",我们是由对象继承于对象的(OLOO-Objects Linking to Other Object) 继续阅读 »
2016-06-08 浩阳
content {:toc} 记录一下阅读蝴蝶书的笔记,本篇为书中以下章节的笔记:继承、数组和正则表达式。 继承 继承的两大好处:代码重用,引入一套类型系统的规范。 伪类 JavaScript 通过构造器函数产生对象。 继续阅读 »