禅的意境
禅,是需要自己去感悟的,真正要领悟javascript技术的真谛,达到悟透的境界是很不容易的
编程之禅是一种境界,要放下心态,学会放下争执,放下狭隘的观点。以乐观和包容的心态对待一切,才能获得思想上的自由,编程之禅就是要快乐地编程,放下技术的本身,这样才能获得和创造一些新的思路和灵感。
引子
数据和代码的纠葛
编程的世界只存在两个基本元素:一个是代码,一个是数据
数据天生是文静的,总想保持自己的固有本色,但是代码确是活泼的,总想着改变世界。
代码在改变数据的同时,也会因为数据的抗拒反而影响或者改变着代码原有的趋势
就是在数据和代码这种矛盾又统一的运转中,总体现着计算机世界的规律,而这种规律就是我们编写的程序逻辑
正文
javascript的数据很简单,只有null,undefined,boolean,string,number,复杂的数据只有一种,就是object
就像中国朴素唯物主义 将世界的元素分为金木水火土
只有一种体现形式 是function
var life = {} for(life.age=1; life.age<=3; life.age++){ switch(life.age){ case 1: life.body='卵细胞'; life.say = function(){ alert(this.age + this.body) } break case 2: life.tail = '尾巴'; life.gill = '鳃'; life.body = '蝌蚪'; life.say = function(){alert(this.age + this.body + '-'+ this.tail + this.gill)} break case 3: delete life.tail; delete life.gail; life.lung = '肺'; life.legs = '四条腿'; life.body = '青蛙'; life.say = function(){alert(this.age + this.body + '-' + this.lung + this.legs)} break } life.say() }
小蝌蚪找妈妈,那我们还需要类吗? 类从无到有,又消失与无形之中,与对象融为一体,正是由于放下了类这个概念,javascript才有了更多的活力
如果你有所感悟的话,就说明你已经逐渐理解javascript的禅机了