当前位置:  开发笔记 > 后端 > 正文

(Ruby,Rails)SELF在模块和库中的上下文......?

如何解决《(Ruby,Rails)SELF在模块和库中的上下文?》经验,为你挑选了1个好方法。

关于在模块或库中使用"SELF"的快速问题.基本上什么是"SELF"的范围/上下文,因为它与模块或库有关,如何正确使用?有关我正在讨论的示例,请查看安装了"restful_authentication"的"AuthenticatedSystem"模块.

注意:我知道'self'在其他语言中等同于'this'以及'self'如何在类/对象上操作,但是在模块/库的上下文中没有"自我".那么,在没有类的模块中,自我的上下文是什么?



1> Sarah Mei..:

在一个模块中:

当您self在实例方法中看到它时,它引用包含该模块的类的实例.

当您看到self实例方法的外部时,它指的是模块.

module Foo
  def a
    puts "a: I am a #{self.class.name}"
  end

  def Foo.b
    puts "b: I am a #{self.class.name}"
  end

  def self.c
    puts "c: I am a #{self.class.name}"
  end
end

class Bar
  include Foo

  def try_it
    a
    Foo.b # Bar.b undefined
    Foo.c # Bar.c undefined
  end
end

Bar.new.try_it
#>> a: I am a Bar
#>> b: I am a Module
#>> c: I am a Module

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有