抛出两个问题:
1,在定义一个函数的时候你是否会考虑这个函数将来怎么调用?
2,调用一个函数的时候你是否会去回忆这个函数当时是怎么实现的?
如果出现这两种情况都是不对的,这样会让你写代码徒增苦恼。
有一个段子,很多时候你的代码实现,在刚写完的时候只有你和上帝看的懂,2个月之后只有上帝看的懂。
函数实现其实是写代码过程中最简单的事,不管初级中级高级程序员磨一磨总能实现。区分普通程序员和高级程序员很关键的一点是程序设计
实现一个函数分为两部分
第一:函数签名(函数设计)
第二:函数实现
函数签名最重要的三个点:函数名,入参,返回值
例如编写一个函数用于比较两个值是否发生过改变
第1步定义函数名:hasChanged
第2步确定函数入参: oldValue,newValue
第3步确定返回值:return boolean
即
function hasChanged(oldValue, newValue) {
// TODO
// return boolean
}
当函数签名设计好了之后,剩下的就都是函数实现。
这个时候你不用去管这个函数将来怎么调用
也不要在将来调用的时候想这个函数是怎么实现的
你看到函数签名就知道这个函数怎么用了就行,就像调用js自带的方法如:
toString()
Date.now()
Math.abs(-1)
调用这些函数的时候你肯定不会去关心它们是怎么实现的。