0

我当前的代码是错误的,但它可能更好地解释我想做什么,用 CoffeeScript 编写:

implement = (the_class) ->
  the_class::__defineGetter__ 'now', -> @[@length - 1]
  the_class::__defineGetter__ 'init', -> @[...(@length - 1)]
  the_class::__defineGetter__ 'head', -> @[0]
  the_class::__defineGetter__ 'body', -> @[1..]

class List extends Array
List::__defineGetter__ 'last', -> @[@length - 1]

class Text extends String


implement List
implement Text

a = new Text 'xxx'
console.log a.now

主要是,我想以head init body tail如上所述的 OOP 方式使用带有简单方法的字符串和数组,例如 ,。但我不想污染全球范围。我试图从 Array 和 String 中继承新类,但它无法在我的代码中工作。

4

0 回答 0