Object
это примитивный тип объекта JavaScript. Все объекты JavaScript
являются потомками Object
. То есть все объекты JavaScript имеют
методы, определённые для Object
.
JavaScript 1.0: метод
JavaScript 1.1, NES 2.0: добавлены методы
JavaScript 1.2: не рекомендуется использовать метод
JavaScript 1.3: добавлен метод | |
new Object()
Отсутствуют.
Свойство |
Описание
|
|
---|
Метод |
Описание
Не рекомендуется. Вычисляет строку кода JavaScript в контексте специфицированного объекта.
Возвращает литерал объекта, представляющий специфицированный объект; Вы можете использовать это значение для создания нового объекта.
|
|
|
|
---|
Специфицирует функцию, которая создаёт прототип объекта. Обратите внимание, что значением этого свойства является ссылка на функцию, а не строка, содержащая имя функции.
Все объекты наследуют свойство constructor
из их prototype
:
o = new Object // или o = {} в JavaScript 1.2
o.constructor == Object
a = new Array // или a = [] в JavaScript 1.2
a.constructor == Array
n = new Number(3)
n.constructor == Number
Хотя Вы и не можете конструировать большинство объектов HTML, Вы можете делать сравнения. Например,
document.constructor == Document
document.form3.constructor == Form
Создаётся прототип Tree
и объект этого типа - theTree
.
Затем выводится свойство constructor
объекта theTree
.
function Tree(name) {
this.name=name
}
theTree = new Tree("Redwood")
document.writeln("<B>theTree.constructor is</B> " +
theTree.constructor + "<P>")
theTree.constructor is function Tree(name) { this.name = name; }
Не рекомендуется. Вычисляет строку кода JavaScript в контексте специфицированного объект.
JavaScript 1.2, NES 3.0: не рекомендуется как метод объектов; оставлен как функция верхнего уровня/top-level function. |
eval(string)
string | Любая строка, представляющая выражение, оператор или последовательность операторов JavaScript. Выражение может содержать переменные и свойства существующих объектов. |
eval
как метод объекта Object и каждого объекта, происходящего от Object,
не рекомендуется применять. Используйте функцию верхнего уровня eval
.
JavaScript 1.1.
eval
это метод объекта Object и каждого объекта, происходящего от Object.
eval
Представляет прототип для данного класса. Вы можете использовать prototype для
добавления свойств или методов во все экземпляры класса. См. дополнительно Function.prototype
.
Возвращает строку, представляющую исходный код объекта.
toSource()
Отсутствуют.
Метод toSource
возвращает следующие значения:
Object
метод toSource
возвращает следующую строку, указывающую, что исходный код недоступен:function Object() {
[native code]
}
Object
, метод toSource
возвращает строку, представляющую исходный код.toSource
возвращает исходный код JavaScript,
определяющий объект, как строку.
Этот метод обычно вызывается в JavaScript внутренне, а не явно в коде. Вы можете
вызывать toSource
при отладке для проверки содержимого объекта.
Определяется тип объектов Dog
и создаётся theDog
,
объект типа Dog
:
function Dog(name,breed,color,sex) {
this.name=name
this.breed=breed
this.color=color
this.sex=sex
}
theDog = new Dog("Gabby","Lab","chocolate","girl")
Вызов метода toSource
объекта theDog
выводит исходный
код JavaScript, определяющий этот объект:
theDog.toSource()
//возвращает "{name:"Gabby", breed:"Lab", color:"chocolate", sex:"girl"}
Object.toString
Возвращает строку, представляющую специфицированный объект.
toString()
JavaScript 1.1: Этот метод разрушен по умолчанию для следующих объектов: Button
, Checkbox
, FileUpload
, Hidden
, History
, Link
, Location
, Password
, Radio
, Reset
, Select
,
Submit
, Text
и Textarea
. О разрушении данных см. книгу
Каждый объект имеет метод toString
, который автоматически
вызывается, если объект представляется как текстовое значение или если на объект
ссылаются при конкатенации строк. Например, следующие примеры требуют, чтобы theDog
был представлен как строка:
document.write(theDog)
document.write("The dog is " + theDog)
По умолчанию метод toString
наследуется каждым объектом - потомком
объекта Object
. Вы можете переопределить этот метод для создаваемых
Вами специальных объектов. Если Вы не переопределяете toString
в
специальном объекте, toString
возвращает [object
type
]
,
где type
это тип объекта или имя функции-конструктора, которая создаёт объект.
var o = new Object()
o.toString // возвращает [object Object]
Встроенные методы toString.
Каждый встроенный объект ядра JavaScript переопределяет метод toString
объекта Object
для возвращения соответствующего значения. JavaScript
вызывает этот метод везде, где необходимо конвертировать объект в строку.
Некоторые встроенные объекты серверного и клиентского JavaScript не
переопределяют метод toString объекта Object. Например, для Image
-объекта sealife
,
определённого ниже, sealife.toString()
возвратит [object Image]
.
<IMG NAME="sealife" SRC="images\seaotter.gif" ALIGN="left" VSPACE="10">
Переопределения метод toString по умолчанию.
Вы можете создать функцию, вызываемую вместо метода toString
по
умолчанию. Метод toString
не принимает аргументов и должен
возвращать строку. Создаваемый Вами метод toString
может иметь
любое значение, но оно будет более употребимым, если будет содержать информацию об объекте.
Следующий код определяет тип объектов Dog
и создаёт theDog
, объект типа Dog
:
function Dog(name,breed,color,sex) {
this.name=name
this.breed=breed
this.color=color
this.sex=sex
}
theDog = new Dog("Gabby","Lab","chocolate","girl")
Если Вы вызываете метод toString
в этом специальном объекте, он
возвращает значение по умолчанию, унаследованное от Object
:
theDog.toString() //возвращает [object Object]
Следующий код создаёт функцию dogToString
, которая будет
использована для переопределения метода toString
по умолчанию. Эта
функция генерирует строку, содержащую каждое свойство, в форме "property = value;"
.
function dogToString() {
var ret = "Dog " + this.name + " is [\n"
for (var prop in this)
ret += " " + prop + " is " + this[prop] + ";\n"
return ret + "]"
}
Следующий код присваивает определённую пользователем функцию методу toString
объекта:
Dog.prototype.toString = dogToString
После этого в любое время, когда theDog
используется в строковом
контексте, JavaScript автоматически вызывает функцию dogToString
,
которая возвращает следующую строку:
Dog Gabby is [
name is Gabby;
breed is Lab;
color is chocolate;
sex is girl;
]
Метод toString
объекта обычно вызывается JavaScript, но Вы можете и
сами вызвать его:
var dogString = theDog.toString()
JavaScript 1.2.
Поведение метода toString
зависит от того, специфицирован ли
атрибут LANGUAGE="JavaScript1.2"
в тэге <SCRIPT>
:
LANGUAGE="JavaScript1.2"
специфицирован в тэге <SCRIPT>
,
метод toString
возвращает литерал объекта.LANGUAGE="JavaScript1.2"
в тэге <SCRIPT>
не специфицирован, метод toString
возвращает [object
type
]
,
как и в других версиях JavaScript.Пример 1: Объект location. Печатается строковой эквивалент текущего location.
document.write("location.toString() is " + location.toString() + "<BR>")
location.toString() is file:///C|/TEMP/myprog.html
Пример 2: Объект без строкового значения. Предположим, у Вас имеется Image
-объект sealife
,
определённый так:
<IMG NAME="sealife" SRC="images\seaotter.gif" ALIGN="left" VSPACE="10">
Поскольку сам по себе Image
-объект не имеет специального метода toString
, sealife.toString()
возвращает:
[object Image]
Пример 3: Параметр radix. Печатается строковые эквиваленты чисел от 0 до 9 в 10-ричном и двоичном формате.
for (x = 0; x < 10; x++) {
document.write("Decimal: ", x.toString(10), " Binary: ", x.toString(2), "<BR>")
}
Decimal: 0 Binary: 0
Decimal: 1 Binary: 1
Decimal: 2 Binary: 10
Decimal: 3 Binary: 11
Decimal: 4 Binary: 100
Decimal: 5 Binary: 101
Decimal: 6 Binary: 110
Decimal: 7 Binary: 111
Decimal: 8 Binary: 1000
Decimal: 9 Binary: 1001
Object.toSource
, Object.valueOf
Удаляет точку наблюдения, установленную методом watch
.
unwatch(prop)
Отладчик JavaScript имеет функциональность, похожую на функциональность,
предоставляемую этим методом, а также другие опции отладки. Об отладчике см.
По умолчанию этот метод наследуется каждым объектом - потомком объекта Object
.
См. watch
.
Возвращает примитивное значение специфицированного объекта.
valueOf()
JavaScript вызывает метод valueOf
для конвертации объекта в
примитивное значение. Вам редко нужно будет вызвать метод valueOf
самостоятельно; JavaScript автоматически вызывает его при обнаружении объекта,
где ожидается примитивное значение.
По умолчанию метод valueOf
наследуется каждым объектом - потомком
объекта Object
. Каждый встроенный объект ядра языка переопределяет
этот метод, чтобы возвращать соответствующее значение. Если объект не имеет
примитивного значения, valueOf
возвращает сам объект, который выводится так:
[object Object]
Вы можете также использовать valueOf
в Вашем коде для конвертации
встроенного объекта в примитивное значение. Если Вы создаёте специальный объект,
Вы можете переопределить Object.valueOf
для
вызова специального метода вместо метода по умолчанию объекта Object
.
Переопределение valueOf для специальных объектов.
Вы можете создать функцию, вызываемую вместо метода по умолчанию valueOf
.
Ваша функция обязана не принимать никаких аргументов.
Предположим, у вас есть тип объектов myNumberType
и Вы хотите
создать метод valueOf
для него. Следующий код присваивает
определённую пользователем функцию методу valueOf
объекта:
myNumberType.prototype.valueOf = new Function(functionText)
После этого всегда при вызове объекта типа myNumberType
,
используемого в контексте, где необходимо представление в виде примитивного
значения, JavaScript автоматически вызывает функцию, определённую в предыдущем коде.
Метод valueOf
объекта обычно вызывается JavaScript, но вы и сами
может вызвать его:
myNumber.valueOf()
ПРИМЕЧАНИЕ: Объекты в строковом контексте конвертируются с помощью метода
toString
, который отличается от конвертированияString
-объектов в строковые примитивы с использованием методаvalueOf
. Все строковые объекты имеют строковую конверсию, если только"[object
type
]"
. Но многие объекты не конвертируются в number, boolean или function.
parseInt
, Object.toString
Наблюдает за свойством, которому присвоено значение, и запускает функцию если это значение появляется.
watch(prop, handler)
Наблюдает за свойством по имени prop
в данном объекте, вызывая handler(prop, oldval, newval)
,
когда prop
устанавливается и сохраняет return-значение в этом
свойстве. Метод watchpoint может фильтровать (или обнулять) значение, возвращая
модифицированное newval
(или oldval
).
Если Вы удалили свойство, для которого watchpoint был установлен, это watchpoint не исчезает. Если Вы позднее воссоздаёте свойство, watchpoint всё ещё продолжает действовать.
Чтобы удалить watchpoint, используйте метод unwatch
.
По умолчанию метод watch
наследуется каждым объектом - потомком объекта Object
.
Отладчик JavaScript имеет функциональность, похожую на функциональность,
предоставляемую этим методом, а также другие опции отладки. Об отладчике см.
<script language="JavaScript1.2">
o = {p:1}
o.watch("p",
function (id,oldval,newval) {
document.writeln("o." + id + " changed from "
+ oldval + " to " + newval)
return newval
})
o.p = 2
o.p = 3
delete o.p
o.p = 4
o.unwatch('p')
o.p = 5
</script>
o.p changed from 1 to 2
o.p changed from 2 to 3
o.p changed from 3 to 4
Дата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999