Сообщение от FINoM
|
Одной штуки, конечно, не хватает в JS, которая есть в Кофе:
|
теперь есть.
Object.prototype.$=function(slot){
var self = this
if(slot in this && typeof this[slot] === "function") return function(){return self[slot].apply(self, arguments)}
if(slot in this) return this[slot]
return {value: undefined}
}
o={foo: {bar: 1}, bar: 1, baz: function(x){return x+this.bar}}
console.log(
o.$("foo").$("bar"),
o.$("baz")(4),
o.$("moo").$("foo")
)
//1 5 { value: undefined }
Вопросительный знак использовать не получится, но можно юзать другие идентификаторы. Синтаксис чуть другой, суть та же. МБ надо чуть допилить, толком не тестил.