设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3082|回复: 14
打印 上一主题 下一主题

[已经解决] F12如何重载脚本

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

跳转到指定楼层
1
发表于 2009-9-20 22:10:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv4.逐梦者

梦石
0
星屑
6870
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

2
发表于 2009-9-20 22:31:31 | 只看该作者
这样写的话 第一次显示的就是0
  1. class Orz
  2.   def test
  3.     p 1
  4.   end
  5. end
  6. class A < Orz
  7.   def test
  8.     p 0
  9.   end
  10. end
  11. A.new.test
复制代码











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
3
发表于 2009-9-20 22:39:15 | 只看该作者
本帖最后由 紫苏 于 2009-9-27 22:00 编辑

动态修改父类的话,子类的 test 就被父类的覆盖了(可以试试在 class A < Orz 前后调用 test);而在 F12 之后,类继承表对象并没有清空,子类和父类的 test 重新定义,这时再次“动态”地 class A < Orz 就没有效果了(这个可以通过在 class A 定义之后 p 出 A 的父类来证明,F12 前后的父类分别是 Object 和 Orz),因为 A 已经是 Orz 的子类

有误,请看 7 楼 ><
回复 支持 反对

使用道具 举报

Lv1.梦旅人

论坛御王核潜艇

梦石
0
星屑
50
在线时间
50 小时
注册时间
2006-1-3
帖子
637

冬季迷宫创意大赛冠军

4
发表于 2009-9-22 14:58:10 | 只看该作者
咦。。。脚本保存后有先在数据库中也保存吗,如果没有。F12必定会这样
默默存在,畅游于各水域
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
21 小时
注册时间
2007-7-3
帖子
573
5
发表于 2009-9-25 16:01:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

6
 楼主| 发表于 2009-9-27 21:18:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
7
发表于 2009-9-27 21:39:19 | 只看该作者
本帖最后由 紫苏 于 2009-9-27 22:00 编辑

goahead那样确实是两个类,因为第二个 A 是在 Orz 这个名字空间中定义的,也就是 A 被定义为了 Orz 模块上下文中的一个常量,而不像第一个 A 是在顶层定义的,所以第一个 A 是全局常量~两个不同的常量,自然可以分别指向不同的类对象,即便父类不同,它们也是不同的类……
这就好比文件系统中,c:\ 下有一个叫 A 的文件,c:\Orz 下有个叫 A 的文件~
  1. class A
  2. end

  3. class Orz
  4.   class A
  5.   end
  6. end

  7. p A.id, Orz::A.id # 不同
复制代码
另外通过 objct_id 测试发现我三楼说的有误,动态改变已定义类的父类的时候,原来的类是被抛弃了,原来的类名常量指向了一个新的 Class 对象,这个类就是为了继承制定父类而重新分配的一个父类~而新分配的这个子类并没有定义 test,所以直接继承了父类的 test,F12后的情况也应该是像上面说的那样~
  1. class A
  2. end

  3. p A.id

  4. class A < Hash
  5. end

  6. p A.id
复制代码
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
21 小时
注册时间
2007-7-3
帖子
573
8
发表于 2009-9-28 10:02:14 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
9
发表于 2009-9-30 11:42:43 | 只看该作者
能,你可以在类常量引用改变之前用另一个常量去保存之前的类对象,或者调用 ObjectSpace._id2ref:

  1. class A
  2. end

  3. B = ObjectSpace._id2ref(A.id)

  4. p A == B

  5. class A < Hash
  6. end

  7. p A == B
复制代码
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

10
 楼主| 发表于 2009-10-1 21:52:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-2 02:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表