Gregogy сделал сообщение о Rebol и JavaScript здесь http://blog.revolucent.net/2009/05/javascript-rebol.htmlДействительно ли Rebol имеет эквивалент для свойства прототипа javascript?
Но, как я иду глубже в сравнивающих JavaScript и Rebol, я не могу увидеть, что эквивалентно Rebol для яваскрипта прототипа. Поскольку расширение экземпляра объекта из другого с make в rebol не совсем похоже на свойство прототипа javascript, поскольку прототип js позволяет распространять ВСЕ экземпляры одновременно.
Так я ошибаюсь, или есть эквивалент коды ниже для Rebol:
<html>
<head>
</head>
<body>
<script>
function Person(firstName, lastName, sex) {
this.firstName = firstName;
this.lastName = lastName;
this.whoAreYou = function() {
alert("I've been built with Constructor and my name is " + this.firstName + " " + this.lastName);
}
this.WhatIsYourSex = function() {
alert(this.sex);
}
};
Person.prototype.sex = "Man";
</script>
<script>
JaneDoe = new Person("Jane", "Doe");
JaneDoe.whoAreYou();
JaneDoe.WhatIsYourSex();
alert("Are you sure?");
JaneDoe.sex = "Woman";
JaneDoe.WhatIsYourSex();
</script>
</body>
</html>
Обновления: Я не забочусь о синтаксическом сахаре, конечно. Ничто не препятствует расширению в R2, просто переопределяя объект. Мой вопрос заключается не в расширении объекта INSTANCE, а в расширении ВСЕХ ИНСТАНЦИЙ сразу: это то, что позволяет свойство прототипа js.
Итак, чтобы переформулировать мой вопрос: Может ли Rebol разрешить также расширить АВТОМАТИЧЕСКИ ВСЕ УСТАНОВКИ детей, расширив родительский класс, как javascript, независимо от того, какой синтаксис мне неинтересен?
Для обеспечения уверенности я вижу разницу между R2 и R3 для одного экземпляра, но что касается функциональности языка, у меня нет автоматического расширения всех объектов для детей, что является большой нагрузкой, поскольку мне придется самостоятельно управлять ими, будет довольно медленным, так как это не выполняется самой системой. Что делать, если я хочу создать фреймворк вроде jquery, который сильно зависит от такого рода функций? Это было бы большой проблемой.
Сравнение языков в синтаксисе довольно ... глупо. Конечно, будут общие черты, особенно если они оба являются функциональными языками с концепциями, взятыми из Self, Lisp и Scheme ... Посмотрите, насколько CoffeeScript похож на JavaScript или сравнивает его с Groovy в этом отношении = P – BGerrissen 2010-11-24 22:35:58
Кто говорит о сравнении синтаксиса ? Конечно, это касается возможности сравнения. Мне не важно 1 цент о синтаксисе. – 2010-11-25 18:52:30
Я никогда не делал таких претензий в своем блоге, учебнике Rebol, но я рад, что в итоге вы узнали больше о REBOL. Языки прототипа могут работать несколькими способами. REBOL - это прототип языка, потому что вы создаете новые объекты на основе существующих объектов, а не спецификаций классов. – 2011-03-06 04:47:00