Object-Oriented JavaScript笔记(五)

Object-Oriented JavaScript 笔记
Object-Oriented JavaScript笔记(一)
Object-Oriented JavaScript笔记(二)
Object-Oriented JavaScript笔记(三)
Object-Oriented JavaScript笔记(四)
Object-Oriented JavaScript笔记(五)
Object-Oriented JavaScript笔记(六)
Object-Oriented JavaScript笔记(七)

第六章 继承

空的构造函数—new F()
用于解决原型链上的属性被覆盖的问题。

Uber 访问父方法。

用函数来实现继承 (注:实际上上面的两个示例的extend已经是被我封装过的了)

复制属性

当复制引用带来的问题

修改引用对象会导致原型的也被修改。

从对象中继承:

浅拷贝

深拷贝:

object()构造起,老道提议的形式。

混合原型拷贝和属性继承(很多时候需要继承一个对象,并给它添加一些属性用)

多重继承,说白了就是按顺序进行属性复制,后出现的覆盖已经存在的。

-EOF-

Chrome For Mac 离线安装包下载

以前写过一篇Chrome离线安装包下载方法是用于Windows的,今天重装了Mac,由于最新的版本不稳定,所以还是下载老版本。网上其它站点下载的不可信,得从Google官方的站点下才行,终于,偶还真把 Google Chrome 18.0.1025.168这个版本给下载下来了。
实际下载地址:

http://dl.google.com/chrome/mac/GoogleChrome-18.0.1025.168.dmg

Chrome Releases Blog查到对应的版本号,替换即可。
-EOF-

Object-Oriented JavaScript笔记(四)

Object-Oriented JavaScript 笔记
Object-Oriented JavaScript笔记(一)
Object-Oriented JavaScript笔记(二)
Object-Oriented JavaScript笔记(三)
Object-Oriented JavaScript笔记(四)
Object-Oriented JavaScript笔记(五)
Object-Oriented JavaScript笔记(六)
Object-Oriented JavaScript笔记(七)

第五章 原型

原型链继承:new 出来的对象仍能继承到给原型prototype添加的方法

给实例添加与原型属性同名的属性,会隐藏原型链属性。
>>> var Class = function(){};
>>> Class.prototype.name = ‘John’;
>>> var toy = new Class()
>>> toy.name = ‘Tom’;
>>> toy.name
“Tom”
>>> delete toy.name
>>> toy.name
“John”

并不是所有的属性都会在for in中被枚举出来。
判断属性是自身属性还是原型链上的属性使用hasOwnProperty()
propertyIsEnumerable()对于prototype上的属性都会返回false,虽然他们都能在for in中被枚举出来。

isPrototypeOf()判断一个对象是否是另一个对象的原型。

Prototype陷阱
prototype对象被替换后,实例的原型链仍然是存在的
prototype.constructor并不可靠
介于此,重写prototype后,最好重置constructor (这里的确很让人迷惑)
-EOF-

新项目: Story Board

大约在前年,我就开始使用Python写Blog程序并将其Hosted在GAE上,并一度有将其开源的打算,后由于GAE数据库读取价格策略改变,代价太高而放弃;期间还写了一个简单的图片存储程序承诺将其开源,由于代码过于草稿没时间整理也一拖再拖。两者,代码至今都没有释放出来。

而在今年年初,GAE完美支持Django+MySQL,给原本失去的希望又重新点燃,用其托管一个小访问量的站点又有了规避方案,另一方面Cloud SQL可以方便的导出数据,数据备份不需要再经过复杂的操作。在二月结束的时候,我写了一个小的网站原型,后经过改进,并将其命名为Story Board托管在GitHub上开源出来。

同时用它替换原来的Oh Bug!。希望Oh Bug!不再单单只是一个Blog,也是一个小众技术讨论区,欢迎任何人参与进来讨论~

Project Story Board
https://github.com/darcyliu/storyboard

Oh Bug!
http://www.ohbug.com/

You are very welcome.

-EOF-

实现JavaScript类继承(inherits)

简单实现了个JavaScript类继承(比下午在公司实现的要简单得多),继承prototype方法和静态方法,实际使用过程中mix函数还需要丰满一下。这东西水很深,自己也一知半解的,不多说直接放代码。

-EOF-