Sets a named const property in this object.
The property is specified by a string name
as defined for Scriptable.get .
The possible values that may be passed in are as defined for
Scriptable.get . A class that implements this method may choose
to ignore calls to set certain properties, in which case those
properties are effectively read-only.
For properties defined in a prototype chain,
use putProperty in ScriptableObject.
Note that if a property a is defined in the prototype p
of an object o, then evaluating o.a = 23 will cause
set to be called on the prototype p with
o as the start parameter.
To preserve JavaScript semantics, it is the Scriptable
object's responsibility to modify o.
This design allows properties to be defined in prototypes and implemented
in terms of getters and setters of Java values without consuming slots
in each instance.
The values that may be set are limited to the following:
- java.lang.Boolean objects
- java.lang.String objects
- java.lang.Number objects
- org.mozilla.javascript.Scriptable objects
- null
- The value returned by Context.getUndefinedValue()
Arbitrary Java objects may be wrapped in a Scriptable by first calling
Context.toObject . This allows the property of a JavaScript
object to contain an arbitrary Java object as a value.
Note that has will be called by the runtime first before
set is called to determine in which object the
property is defined.
Note that this method is not expected to traverse the prototype chain,
which is different from the ECMA [[Put]] operation.
Parameters: name - the name of the property Parameters: start - the object whose property is being set Parameters: value - value to set the property to See Also: org.mozilla.javascript.Scriptable.has(StringScriptable) See Also: org.mozilla.javascript.Scriptable.get(StringScriptable) See Also: org.mozilla.javascript.ScriptableObject.putProperty(ScriptableStringObject) See Also: org.mozilla.javascript.Context.toObject(ObjectScriptable) |