Назад Вперёд |
Ядро JavaScript 1.5. Справочник. |
Object
это примитивный тип объекта в JavaScript. Все объекты JavaScript являются
потомками от Object
. То есть, все JavaScript-объекты имеют методы, определённые в Object
.
JavaScript 1.0: метод toString. JavaScript 1.1, NES 2.0: добавлены методы
JavaScript 1.2: не рекомендуется использовать метод JavaScript 1.3: добавлен метод JavaScript 1.4: удалён метод |
|
Object
-конструктор:
Отсутствуют.
Свойство |
Описание |
---|---|
constructor | |
prototype |
Метод | Описание |
---|---|
eval | Не рекомендуется использовать. Вычисляет строку кода JavaScript в контексте специфицированного объекта. |
toSource |
Возвращает литерал объекта, представляющий специфицированный объект; Вы можете использовать это значение для создания нового объекта. |
toString | |
unwatch | |
valueOf | |
watch |
Специфицирует функцию, создающую прототип объекта. Заметьте, что значением этого свойства является ссылка на саму функцию, а не строка с именем функции.
Все объекты наследуют свойство 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: не рекомендуется как метод объектов; остаётся как функция верхнего уровня. |
eval(string)
string | Любая строка, представляющая выражение JavaScript, оператор или последовательность операторов. Это выражение может содержать переменные и свойства существующих объектов. |
Метод eval
больше не
доступен как метод из Object
.
Используется функция верхнего уровня eval
.
eval
как метод из Object
и каждого объекта, полученного из Object
, не рекомендуется к
использованию (но имеется).
eval
является методом из Object
и каждого объекта, полученного из Object
.
eval.
Представляет прототип для данного класса. Вы можете использовать этот прототип
для добавления свойств или методов всем экземплярам класса. См. также
Function.prototype
.
Возвращает строку - исходный код объекта.
toSource()
Отсутствуют.
Метод toSource
возвращает следующие значения:
Object
, toSource
возвращает следующую строку, означающую, что исходный код недоступен: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"}
Возвращает строку, представляющую специфицированный объект.
toString()
Каждый объект имеет метод toString
,
который автоматически вызывается, если объект представляется как текстовое
значение или если на объект имеется ссылка в конкатенации строк. Например,
следующие примеры требуют, чтобы theDog
был представлен как строка:
document.write(theDog)
document.write("The dog is " + theDog)
По
умолчанию метод toString
наследуется каждым объектом - потомком от Object
.
Вы можете переопределять этот метод для специальных/custom объектов, создаваемых
Вами. Если Вы не переопределяете toString
в специальном объекте, toString
возвращает [object type]
, где type
это тип объекта или имя функции constructor, создавшей этот объект.
var o = new
Object
()
o.toString // возвращает [object Object
]
toString
.
Каждый встроенный объект ядра JavaScript переопределяет метод toString
из Object
для возвращения соответствующего значения. JavaScript вызывает этот метод по мере
необходимости для конвертации объекта в строку.
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
, он возвращает значение по умолчанию,
унаследованное из 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()
Поведение метода toString
зависит от того, специфицируете ли Вы LANGUAGE="JavaScript1.2" в тэге <SCRIPT>:
LANGUAGE="JavaScript1.2"
в тэге <SCRIPT>, метод toString
возвращает литерал объекта.LANGUAGE="JavaScript1.2"
в
тэге <SCRIPT>, метод toString
возвращает[object type],
как в других версиях JavaScript.
Объект location
. Здесь печатается строковой эквивалент текущего location
.
document.write("location.toString() это " + location.toString() + "<BR>")
location.toString() это file:///C|/TEMP/myprog.htmll
Объект без строкового значения. Предположим, у Вас есть объект Image
с именем sealife
, определённый так:
<IMG NAME="sealife" SRC="images\seaotter.gif" ALIGN="left" VSPACE="10">
Поскольку сам объект Image
не имеет специального метода toString
, sealife.toString()
возвращает:
Параметр radix
. Этот код печатает строковые эквиваленты чисел от 0
до 9 в десятичном и двоичном виде.
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
возвращает сам объект, который отображается так:
Вы можете использовать valueOf
в своём собственном коде для конвертации встроенного объекта в примитивное
значение. Если Вы создаёте специальный объект, Вы можете переопределить Object
.valueOf
для вызова специального метода вместо метода по умолчанию из Object
.
Переопределение valueOf
для специальных объектов.
Вы можете создать функцию, вызываемую вместо метода по умолчанию valueOf
.
Ваша функция обязана не принимать аргументов.
Предположим, у Вас есть объект типа myNumberType
и Вы хотите создать для него метод valueOf
.
Следующий код присваивает определённую пользователем функцию методу valueOf
объекта:
myNumberType.prototype.valueOf = new Function(functionText)
Вместо предшествующего кода, объект типа myNumberType
используется в контексте, где он представлен как примитивное значение, а JavaScript
автоматически вызывает функцию, определённую в предыдущем коде.
Метод valueOf
объекта
обычно вызывается JavaScript, но Вы и сами можете вызвать его так:
Объекты в строковом контексте конвертируются с помощью метода toString
,
который отличается от объектов String
,
конвертирующихся в строковые примитивы через использование valueOf
.
Все строковые объекты выполняют строковую конверсию, только если "[object type]".
Но многие объекты не конвертируются в число, boolean
или функцию.
Наблюдает за свойством, которому присвоено значение, и запускает функцию, если оно появляется.
watch(prop, handler)
Наблюдает за присваиваемыми значениями в свойстве prop
данного объекта, вызывая handler(prop, oldval, newval)
,
если значение prop
где-либо устанавливается, и сохраняя return
-значение в этом свойстве. Точка
контроля/watchpoint может фильтровать (или обнулять) присвоение значения,
возвращая модифицированное newval
(или старое oldval
).
Если Вы удалите свойство, для которого была установлена контрольная точка, эта контрольная точка не исчезнет. Если Вы позднее воссоздадите это свойство, контрольная точка будет продолжать действовать.
Чтобы удалить контрольную точку, используйте метод 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.p changed from 1 to 2
o.p changed from 2 to 3
o.p changed from 3 to 4
Copyright © 2000
Дата последнего обновления: 28 сентября 2000 г.