В JavaScript типы данных в основном делятся на примитивные типы и эталонные типы. Все типы ссылок поступают из копии объекта. Эта статья представляет собой введение в некоторые скрытые функции объекта объекта, представленного вам редактором нового технологического канала ошибки. Давайте посмотрим!
Это свойство определено в прототипе класса. После создания экземпляра объекта его можно вызвать экземпляром объекта через цепочку __proto__ и указывает на конструктор текущего класса. Это может определить, к какому классу объект непосредственно принадлежит (в отличие от экземпляра, экземпляр не ограничивается классом, к которому объект непосредственно принадлежит, даже родительский класс возвращает true).
[Пример]
trace (object.prototype.constructor == Object); // Вывод TRUE
var a = new Object ();
трассировка (A.Constructor == Object); // Вывод TRUE
var b = new Array ();
след (B.Constructor == Array); // Вывод TRUE
след (B.Constructor == Object); // Вывод FALSE
Trace (b -экземпляр объекта); // Вывод TRUE
Свойство: объект .__ Конструктор__
Эта функция свойства аналогична object.constructor, разница в том, что она не определена в прототипе класса, а прикреплена к экземпляру объекта при создании экземпляра объекта. В то же время это свойство также называется неявно, когда используется супер -ключевым словом в качестве конструктора родительского класса, и используется для указания на конструктор родительского класса, то есть супер (...) эквивалентен этому .______ Constructor __. Call (это, ...).
[Пример]
Trace (object.prototype .__ Constructor__ == Object); // Вывод FALSE
var a = new Object ();
Trace (a .__ Constructor__ == Object); // Вывод TRUE
var b = new Array ();
Trace (b .__ Constructor__ == Array); // Вывод TRUE
Trace (b .__ Constructor__ == Object); // Вывод FALSE
Метод: object.isprototypeof (classfunc)
Этот метод используется для определения того, находится ли текущий объект в цепочке __proto__ объекта obj. Этот метод может быть использован для определения того, является ли класс родителем или ребенком другого класса.
[Пример]
trace (object.prototype.isprototypeof (new object ())); // Вывод TRUE
trace (object.prototype.isprototypeof (new Array ())); // Вывод TRUE
trace (array.prototype.isprototypeof (new object ())); // Вывод FALSE
trace (object.prototype.isprototypeof (array.prototype)); // Судите, является ли объект родительским классом массива, вывод True
Метод: object.ispropertyEnumerable (propname)
Этот метод используется для определения того, существует ли элемент именованного пропляна в текущем объекте, и может быть перечислен (с использованием для ... In), другими словами, независимо от того, видно ли оно (используя глобальную функцию AssetPropflags, чтобы установить, являются ли свойства объекта).
[Пример]
var a = {x: 1, y: 2};
AssetPropflags (a, ["y"], 1); // set y невидим
след (ай); // только вывод 2
для (var i в а) трассировке (i); // только вывод x
Trace (a.ispropertyEnumerable ("x")); // Вывод TRUE
Trace (a.ispropertyEnumerable ("y")); // Вывод FALSE
Метод: object.hashownproperty (propname)
Этот метод используется для определения того, является ли участник с именем Propname членом самого текущего объекта, а не ссылается из прототипа класса через цепочку __proto__.
[Пример]
Function test () {}
test.prototype.x = 1;
var a = new Test ();
ay = 2;
след (AX); // Вывод 1
Trace (a.hashownproperty ("x")); // Вывод FALSE
след (ай); // Вывод 2
Trace (a.hashownproperty ("y")); // Вывод TRUE
Метод: Object.ToString ()
Этот метод может определить результат строки, сгенерированный объектом при преобразовании в тип строки, который обычно определяется в прототипе класса.
[Пример]
точка функции (x, y) {
this.x = x;
this.y = y;
}
point.prototype.tostring = function () {
вернуть "[x:" + this.x + ", y:" + this.y + "]";
};
var pos = новая точка (10, 20);
трассировка («позиция» + pos); // Выходное положение [x: 10, y: 20]
Выше приведено введение в некоторые скрытые функции объектов объектов. Я считаю, что у всех есть четкое понимание. Больше знаний о техническом канале находится в неправильном новом технологическом канале!