javascript 跟 ruby 一样,作用域是在 define 的时候确定。所以很多时候一个 function 需要从新 bind context,最常见的例子就是 mixin 了。这么基本的道理我是最近才弄清楚。用了太多的 framework 很多基本的东西都被掩盖了。
一直在用这个,不错
我最近也面过一个旧金山的创业公司,这里介绍一下我的经验。(他们是从 linkedin 上找到我的(所以想去美国工作的朋友,linkedin 很重要)。 我应聘的也是前端(front end engineer),一共有三轮。
log
函数来代替console.log
。跟这个类似http://blog.sourcing.io/interview-questions 。我在这个问题上卡了很久。试着用apply
然后在他的提示下加入console
作为 scope,但他要求在 chrome console 打印出来的要跟console.log
一模一样,文件行数都一样,并且要有前缀。当时也是越做越紧张,过程中他还不断的要求我讲出自己的思路想法(think aloud),最后实在搞不出来了。在他的提示下用到了bind
函数。我承认从来没有需求用到过这个函数。最后算是做出来了,但实在太狼狈,以致后面都没有时间问其他问题了。插个话题,后来仔细想了一下,这个 bind 是可以用 apply 来写出来的 这边也已经有了https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Compatibility 。最后的是一个 java 程序员,问了我一下怎么做 threadpool,synchronization,还有 tree traversal,我都搞出来了。这个机会最后是没有拿到,我觉得还是那个 javascript 的问题。作为一个 front end engineer,这些基本功还是要非常扎实的。
@allenfantasy 谢谢!Share 准备晚一点做。不过,欢迎贡献代码 :D
取其精华,去其糟粕。 精华就是,不要盲信权威。 所以没必要为谁是权威的话题争论不休。
@kevinzhow 谢了 :)
太花哨了,技术等级这个东西也不是你说的算的
这个问题已提交在这里。
正在看。我发现如果想看懂很多 open source project,此书必看。
@nightire 谢谢!我的下一篇已发表 http://ruby-china.org/topics/15813
@jiyinyiyong 哈哈,有些文章实在太水,实在拿不出手。
@jiyinyiyong 因为这是从我的英文博客上拷过来的。
@zlx_star 真的是新手啊。
cool!
在想是不是真的有必要用 grape,如果不用会简单很多。(我是新手)
这样啊!我搞麻烦了。。谢了 @blacktulip !
@small_fish__ 这样对吧?
def process prefix
urls = ['./201207/t20120705_1887040.html', './201206/t20120608_1846662.html']
yield urls, prefix
end
linkhandle = Proc.new {|urls, prefix| urls.map{|u| "#{prefix}/#{u}"}}
print process('http://www.baidu.com', &linkhandle).join("\n")