Gregogy는 REBOL 여기에 자바 스크립트 http://blog.revolucent.net/2009/05/javascript-rebol.htmlRebol에는 javascript 프로토 타입 속성에 해당하는 것이 있습니까?
에 대한 게시물을했다하지만 비교 자바 스크립트와 REBOL에 깊은거야, 나는 자바 스크립트 프로토 타입 REBOL의 상응하는 무엇을 볼 수 없습니다. js 프로토 타입은 모든 인스턴스를 한 번에 확장 할 수 있으므로 rebol을 사용하여 다른 인스턴스에서 객체 인스턴스를 확장하는 것이 javascript 프로토 타입 속성과 정확히 같지 않기 때문입니다.
그래서 내가 잘못 오전 또는 거기는 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의 확장에 관한 것이 아니라 모든 INSTANCES의 확장에 관한 것입니다. js 프로토 타입 속성에서 허용하는 것입니다.
그래서 내 질문을 다시 쓰기 : Rebol은 또한 자바 스크립트와 같은 상위 클래스를 확장하여 자동으로 모든 인스턴스를 확장 할 수 있습니다. 상관 없어도 상관 없습니다.
성능을 위해 한 인스턴스에서 R2와 R3의 차이점을 볼 수 있지만 언어 기능에 대해서는 모든 자식 개체의 자동 확장이 없기 때문에 큰 부담이됩니다. 그것이 시스템 자체에 의해 수행되지 않기 때문에 아주 느릴 것입니다. 이런 종류의 기능에 크게 의존하는 jquery와 같은 프레임 워크를 만들고 싶다면 어떻게해야할까요? 큰 번거 로움이 될 것입니다.
구문에 대한 언어 비교는 오히려 바보입니다. 물론 Self, Lisp, Scheme에서 가져온 개념을 가진 함수형 언어 인 경우 유사점이 있습니다 ... CoffeeScript가 JavaScript와 얼마나 비슷한지 확인하거나 Groovy와 그 점을 비교해보십시오. – BGerrissen
구문 비교에 대해 이야기하는 사람 ? 그것은 물론 능력을 비교하는 방법입니다. 구문에 대해 1 센트를 신경 쓰지 않습니다. –
내 블로그 게시물 Rebol Tutorial에서 그러한 주장을 한 적은 한 번도 없었지만 REBOL에 대해 더 많이 배우게 된 것을 기쁘게 생각합니다. 프로토 타입 언어는 여러 가지 다른 방식으로 작동 할 수 있습니다. REBOL은 클래스 스펙이 아닌 기존 오브젝트를 기반으로 새 오브젝트를 작성하기 때문에 프로토 타입 언어입니다. –