Difference between revisions of "New"

From MiniScript Wiki
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.
 
[[Category:Language]]
 
[[Category:Keywords]]
 
[[Category:Operators]]
 
 
{{stub}}
 
  
 
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.