Разница между ссылкой и экземпляром в javascript
иногда я слышу, как люди говорят: "ссылка на объект", а некоторые говорят "экземпляр объекта" В чем разница?
8 ответов
A переменная проведет ссылка до экземпляр объекта.
фактический объект является экземпляр.
переменная/переменные, используемые для доступа к объекту, удерживая клавишу ссылки к нему.
экземпляр объекта (или, возможно, более точно сформулированный, когда речь идет о языках, которые имеют понятие класса) - это объект, который был создан и существует в памяти. Например, при написании
var obj = new Foo();
затем был создан новый экземпляр объекта (с new Foo
).
ссылка на объект - это своего рода дескриптор, который позволяет нам получить доступ к экземпляру. Например, на многих языках (включая JavaScript) obj
Теперь содержит ссылку на экземпляр, который мы только что создали.
там может быть много ссылок на один и тот же экземпляр, как и в
var obj2 = obj;
где теперь obj
и obj2
содержат ссылки на один и тот же объект.
там может быть много ссылок на один экземпляр. Это как, эм, много путей, ведущих в одно и то же место.
var x="string object";
var y=x;
и x
и y
два разных (но равных) ссылки на один и тот же экземпляр объекта.
в JavaScript переменная является ссылкой на фактический экземпляр
// create a new object from the Object constructor
// and assign a reference to it called `firstObjRef`
var firstObjectRef = new Object();
// Give the object the property `prop`
firstObjRef.prop = "im a property created through `firstObjRef`";
// Create a second reference (called `secondObjRef`) to the same object
var secondObjRef = firstObjRef;
// this creates a reference to firstObjRef,
// which in turn references the object
secondObjRef.otherProp = "im a property created through `secondObjRef`";
// We can access both properties from both references
// This means `firstObjRef` & `secondObjRef` are the same object
// not just copies
firstObjRef.otherProp === secondObjRef.otherProp;
// Returns true
Это также будет работать, если передать переменную в функцию:
function objectChanger (obj, val) {
// set the referenced object;s property `prop` to the referenced
// value of `val`
obj.prop = val;
}
// define a empty object outside of `objectChanger`'s scope
var globalObject = {};
globalObject === {}; // true
// pass olobalObject to the function objectChanger
objectChanger(globalObject, "Im a string");
globalObject === {}; // false
globalObject.prop === "Im a string"; // true
мы всегда используем ссылку на объект и не можем использовать объект напрямую, мы можем использовать только ссылку. экземпляр объекта в памяти.
когда мы создаем объект, мы получаем ссылку. Мы можем создать больше ссылок:
var obj = {}; // a reference to a new object
var a = obj; // another reference to the object
Object-это занятая память для класса. Ссылки на эту память, и у нее есть имя (u может называть ее переменной). Например, А = новый(); здесь, когда мы пишем " new A ()"; некоторая память будет занята в системе. "a" - это ссылка(переменная), которая указывает на эту память и используется для доступа к данным, присутствующим в этой памяти.
объект получается, когда он имеет жизнь, означает, что он занял некоторую память. Ссылки на объект. Экземпляр копия ссылки, указывающей на объект в определенный момент времени.
Refrence-переменная, указывающая объекты. Объект-это экземпляр класса, который имеет память и экземпляр переменной и методы объект.
ссылка означает адрес объекта или переменной. Объект является экземпляром класса, а экземпляр означает представителя класса i.e объект
экземпляр-это фактический объект, созданный во время выполнения.
фактическое определение английского языка "instance" и " reference.'
экземпляр: пример или единичное возникновение чего-либо.
ссылка: действие упоминания.
таким образом, принимая во внимание эти два определения фактических слов и применяя его к сценарию JavaScript, вы можете понять, как каждая концепция подходит.