想象一下以下REBOL代码:
foo: context [bar: 3]
我现在有一个上下文foo
中'bar
定义.如何在此上下文中动态注入新单词?可能吗?
我试过了:
set/any in foo 'baz 3
但这不起作用,因为表达式in foo 'baz
失败,因为上下文中没有'baz
定义单词foo
.
我应该补充一点,我知道有一种方法可以做到这一点:
foo-prototype: [bar: 3] foo: context foo-prototype foo: context head append foo-prototype [baz: 3]
但是,如果您无法访问foo
原型块呢?
您可以通过使用现有对象作为原型来创建新对象来实现相同目的.
>> foo: make object! [bar: 3] >> foo: make foo [baz: 3] >> probe foo make object! [ bar: 3 baz: 3 ]