Свойства и методы, которые можно получить во всех случаях, которые можно получить в JavaScript в JavaScript. часть знаний.
Определения основных типов следующие:
Код кода копирования следующим образом:
Функция Person () {}
Person.prototype = {
конструктор: человек,
Имя: «Человек»,
Возраст: 100,
Друзья: [A "," B "] ,,
getName: function () {
Вернуть это. Name;
}
};
Определите примеры двух человек, измените свойство имени в экземпляре (атрибут определяется в прототипе), тестовый код выглядит следующим образом
Код кода копирования следующим образом:
var p1 = новый человек ();
var p2 = новый человек ();
Document.Write (p1.name+"<br/>");
Document.Write (p2.name+"<br/>");
p1.name = "p1";
Document.Write (p1.name+"<br/>");
Document.Write (p2.name+"<br/>");
document.write (p1.hasownproperty ("name")+"<br/>");
document.write (p2.hasownproperty ("name")+"<br/>");
document.write (object.keys (p1)+"<br/>");
document.write (object.keys (p2)+"<br/>");
document.write (object.get.getownpropertynames (person.prototype)+"<br/>");
document.write (person.prototype.name+"<br/>");
После тестирования можно обнаружить, что p1.name = "p1" не изменяет значение имени, но добавьте атрибут имени в имени в экземпляре P1. Последний объект. Keys (P1) также может видеть, что в экземпляре P1 есть дополнительный атрибут имени без P2. Вся передача в JS является передачей значения. Код, чтобы проиллюстрировать эту проблему.
Код кода копирования следующим образом:
var obj = new Object ();
obj.name = "obj";
function изменение obj (o) {
o.name = "Изменен";
O = новый объект ();
o.name = "newobj";
}
ChangeObj (obj);
Document.Write (obj.name);
В методе BediceObj O = new Object () не изменяет значение параметра o, но отключает исходные эталонные отношения, поэтому результат не является NewObj, но изменен, но изменен
Следующий тест, чтобы изменить атрибут друзей в прототипе в первом примере.
Код кода копирования следующим образом:
p1.friends.push ("c");
Document.Write (P1.Friends+"<br/>");
Document.Write (P2.Friends+"<br/>");
P1.Friends = ["x", "y", "z"];
Document.Write (P1.Friends+"<br/>");
Document.Write (P2.Friends+"<br/>");
document.write (p1.hasownproperty ("Друзья")+"<br/>");
Document.Write (p2.hashownproperty ("Друзья")+"<br/>");
document.write (object.keys (p1)+"<br/>");
document.write (object.keys (p2)+"<br/>");
document.write (object.get.getownpropertynames (person.prototype)+"<br/>");
Document.Write (Person.Prototype.Friends+"<br/>");
Результаты испытаний в основном такие же, как первый тест.
Основываясь на этих двух результатах теста, обнаружено, что атрибуты типа значения в прототипе не могут быть напрямую изменены в экземпляре (конечно, этот тип значения не должен быть определен в прототипе.