Skip to content

API Host ScriptObject

Liu.Yandong.Hanks edited this page Aug 21, 2026 · 3 revisions

ScriptObject

Base dynamic object type used for host-created objects, user state, globals, modules, and runtime objects.

Back to .NET Host API Reference

Overview

ScriptObject is the base dynamic object used for host-created values, user state, globals, modules, and runtime objects. Property operations have distinct retrieval, assignment, deletion, definition, and copy semantics.

Quick Reference

var profile = new ScriptObject();
profile.Define("name", ScriptDatum.FromString("Aurora"));
var name = profile.GetPropertyValue("name");

Constructors

ScriptObject()

Creates an empty dynamic object.

ScriptObject()

Parameters

None.

Returns

A new ScriptObject instance.

Properties

Prototype

Gets or sets the prototype used for inherited property lookup.

ScriptObject Prototype

Parameters

None.

Returns

Returns ScriptObject.

IsFrozen

Indicates whether mutation has been disabled by Frozen().

bool IsFrozen

Parameters

None.

Returns

Returns bool.

Immutable

Indicates whether the object is immutable.

bool Immutable

Parameters

None.

Returns

Returns bool.

Methods

Frozen

Prevents subsequent mutation of the object.

void Frozen()

Parameters

None.

Returns

None.

GetPropertyValue

Retrieves the property identified by key.

ScriptObject GetPropertyValue(string key)

Parameters

Name Type Required Description
key string Yes Property name to retrieve, assign, delete, or define.

Returns

Returns ScriptObject.

SetPropertyValue

Assigns an object-valued property.

void SetPropertyValue(string key, ScriptObject value)

Parameters

Name Type Required Description
key string Yes Property name to retrieve, assign, delete, or define.
value ScriptObject Yes Property value.

Returns

None.

DeletePropertyValue

Deletes the property identified by key.

bool DeletePropertyValue(string key)

Parameters

Name Type Required Description
key string Yes Property name to retrieve, assign, delete, or define.

Returns

Returns bool.

Define

Defines an own property and its writeability and enumerability.

void Define(string key, ScriptObject value, bool writeable = true, bool enumerable = true)
void Define(string key, ScriptDatum value, bool writeable = true, bool enumerable = true)

Parameters

Name Type Required Description
key string Yes Property name to retrieve, assign, delete, or define.
value ScriptObject / ScriptDatum Yes Property value.
writeable bool No Whether the property may be assigned after definition.
enumerable bool No Whether the property appears during enumeration.

Returns

None.

CopyProperties

Copies properties from this object to target.

void CopyProperties(ScriptObject target, bool force = false, bool enumerableOnly = false)

Parameters

Name Type Required Description
target ScriptObject Yes Destination object that receives copied properties.
force bool No Whether existing destination properties may be overwritten.
enumerableOnly bool No Whether to copy enumerable properties only.

Returns

None.

CopyPropertysFrom

Copies properties from another object into this object.

void CopyPropertysFrom(ScriptObject scriptObject, bool force = false)

Parameters

Name Type Required Description
scriptObject ScriptObject Yes Source object whose properties are copied.
force bool No Whether existing destination properties may be overwritten.

Returns

None.

CopyEnumerablePropertysFrom

Copies enumerable properties from another object into this object.

void CopyEnumerablePropertysFrom(ScriptObject scriptObject, bool force = false)

Parameters

Name Type Required Description
scriptObject ScriptObject Yes Source object whose properties are copied.
force bool No Whether existing destination properties may be overwritten.

Returns

None.

DeepClone

Creates a deep clone of this object.

ScriptObject DeepClone()

Parameters

None.

Returns

Returns ScriptObject.

EnumerationKeys

Returns enumerable property keys.

List<string> EnumerationKeys()

Parameters

None.

Returns

Returns List<string>.

GetEnumerator

Creates an enumerator over this object.

ScriptEnumerator GetEnumerator()

Parameters

None.

Returns

Returns ScriptEnumerator.

IsTrue

Returns the script truthiness of this object.

bool IsTrue()

Parameters

None.

Returns

Returns bool.

Clone this wiki locally