Difference between revisions of "New"
Jump to navigation
Jump to search
(fix formatting) |
(fix syntax) |
||
| Line 10: | Line 10: | ||
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. | 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. | ||
| − | <ms>Animal = { | + | <ms>Animal = {} |
| − | + | Animal.speak = function | |
| − | + | print "..." | |
| − | + | end function | |
| − | |||
Dog = new Animal | Dog = new Animal | ||
Latest revision as of 03:24, 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 = {}
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.