Difference between revisions of "New"
Jump to navigation
Jump to search
(some information) |
(fix formatting) |
||
| Line 2: | Line 2: | ||
<c>new</c> acts on a map, and returns a new map with [[__isa]] set to the operand. | <c>new</c> acts on a map, and returns a new map with [[__isa]] set to the operand. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
In MiniScript, the new keyword is a unary operator used for object-oriented programming. It creates either: | In MiniScript, the new keyword is a unary operator used for object-oriented programming. It creates either: | ||
| Line 14: | Line 8: | ||
a subclass derived from another map/object. | a subclass derived from another map/object. | ||
| − | When new is applied to a map, it returns a fresh map whose __isa field points to the original operand. That creates prototype-style inheritance. | + | When new is applied to a map, it returns a fresh map whose <c>__isa</c> field points to the original operand. That creates prototype-style inheritance. |
| − | Animal = { | + | <ms>Animal = { |
speak: function | speak: function | ||
print "..." | print "..." | ||
| Line 32: | Line 26: | ||
Dog.__isa == Animal | Dog.__isa == Animal | ||
| − | myDog.__isa == Dog | + | myDog.__isa == Dog</ms> |
This inheritance chain lets MiniScript look up methods and properties through parent objects automatically. | This inheritance chain lets MiniScript look up methods and properties through parent objects automatically. | ||
| + | |||
| + | [[Category:Language]] | ||
| + | [[Category:Keywords]] | ||
| + | [[Category:Operators]] | ||
Revision as of 03:23, 21 May 2026
new is a keyword unary operator used to create a subclass or instance. It is part of MiniScript's support for object-oriented programming.
new acts on a map, and returns a new map with __isa set to the operand.
In MiniScript, the new keyword is a unary operator used for object-oriented programming. It creates either:
a new instance of an object, or a subclass derived from another map/object.
When new is applied to a map, it returns a fresh map whose __isa field points to the original operand. That creates prototype-style inheritance.
Animal = {
speak: function
print "..."
end function
}
Dog = new Animal
Dog.speak = function
print "Woof!"
end function
myDog = new Dog
myDog.speak
Dog.__isa == Animal
myDog.__isa == Dog
This inheritance chain lets MiniScript look up methods and properties through parent objects automatically.