小编npu*_*pup的帖子

这种JavaScript语法到目前为止我还没有看到过,它真正做到了什么?

今天我看到了一个我不熟悉的JavaScript语法(在调用函数时).它就像:

def('Person') ({
  init: function(name) {this.name=name;}
  ,speak: function(text) {alert(text || 'Hi, my name is ' + this.name);}
});
Run Code Online (Sandbox Code Playgroud)

,和

def('Ninja') << Person ({
  kick: function() {this.speak('I kick u!');}
});
Run Code Online (Sandbox Code Playgroud)

1:第一个例子中括号内的对象会发生什么?它def以某种方式由函数处理,但我不明白这里发生了什么(参见def下面的函数).物体在哪里?

2:关于同样的事情,但是使用了<<我从未见过的操作员(我想!).那是什么意思?

代码来自http://gist.github.com/474994,其中Joe Dalton做了一个小的JavaScript-OO继承的事情(它显然是别人工作的一个分支,但看起来很彻底改写).也许你想在那里查看def函数引用的东西,我在这里给你:

function def(klassName, context) {
  context || (context = global);

  // Create class on given context (defaults to global object)
  var Klass =
    context[klassName] = function Klass() {

      // Called as a constructor
      if (this != context) { …
Run Code Online (Sandbox Code Playgroud)

javascript syntax function operators

22
推荐指数
2
解决办法
3813
查看次数

无法安装pg gem,"mkmf.rb无法找到ruby的头文件"(Mac OSX 10.6.5)

我刚刚升级到Rails 3并且对MacPorts,宝石和数据库进行了一些混乱.我抛弃了所有的宝石并将它们安装得很新鲜.除了pg gem的要求外,一切似乎都没问题.

创建一个为PostgreSQL准备的新Rails 3项目后,服务器无法启动,抱怨丢失的pg gem.这样做bundle install,它会持续一段时间,当然,在pg gem上失败了.

Installing pg (0.10.0) with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.10.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.10.0/ext/gem_make.out
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `each'
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `build_extensions'
    from /Library/Ruby/Site/1.8/rubygems/installer.rb:198:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/source.rb:95:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:55:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:44:in `run'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/installer.rb:8:in `install'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.7/lib/bundler/cli.rb:225:in `install' …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql rubygems ruby-on-rails

21
推荐指数
3
解决办法
2万
查看次数