Иногда я слышу, как люди говорят "ссылка на объект", а некоторые говорят "экземпляр объекта", В чем разница?
Разница между ссылкой и экземпляром в javascript
Ответ 1
Переменная будет содержать ссылку на экземпляр объекта.
Фактический объект - это экземпляр.
Переменная/переменные, используемые для доступа к объекту, содержат ссылки на него.
Ответ 2
Экземпляр объекта (или, возможно, более точно сформулированный при разговоре о языках с понятием класса) - это объект, который был создан и существует в памяти. Например, при написании
var obj = new Foo();
Затем был создан новый экземпляр объекта (с new Foo
).
Ссылка на объект - это своего рода дескриптор, который позволяет нам получить доступ к экземпляру. Например, на многих языках (включая JavaScript) obj
теперь содержится ссылка на только что созданный экземпляр.
В одном экземпляре может быть много ссылок, как в
var obj2 = obj;
где теперь оба obj
и obj2
содержат ссылки на один и тот же объект.
Ответ 3
В одном экземпляре может быть много ссылок. Это как, гм, много путей, ведущих к тому же месту.
var x="string object";
var y=x;
Оба x
и y
являются двумя разными (но равными) ссылками на один и тот же экземпляр объекта.
Ответ 4
В 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` scope
var globalObject = {};
globalObject === {}; // true
// pass olobalObject to the function objectChanger
objectChanger(globalObject, "Im a string");
globalObject === {}; // false
globalObject.prop === "Im a string"; // true
Ответ 5
Мы всегда используем ссылку на объект и не можем напрямую использовать объект, мы можем использовать ссылку. Сам экземпляр объекта находится в памяти.
Когда мы создаем объект, мы получаем ссылку. Мы можем создать дополнительные ссылки:
var obj = {}; // a reference to a new object
var a = obj; // another reference to the object
Ответ 6
Объект - это занятая память для класса. Ссылка указывает на эту память, и у нее есть имя (u можно назвать ее переменной). Например, A a = новый A(); здесь, когда мы пишем "новый A();" некоторая память будет занята в системе. "a" - это ссылка (переменная), которая указывает на эту память и используется для доступа к данным, присутствующим в этой памяти.
Объект получается, когда он имеет жизнь, означает, что он занял некоторую память. Ссылка указывает на объект. Экземпляр - это копия ссылки, которая указывает на объект в определенный момент времени.
Refrence - это переменная, которая указывает объекты. Объект - это экземпляр класса с некоторой памятью, а экземпляр - это переменная и методы, которые имеют объект.
Ссылка означает адрес объекта или переменной. Объект - это экземпляр класса и экземпляр, представляющий объект класса i.e
Экземпляр - это фактический объект, созданный во время выполнения.
Ответ 7
Var a="myObject";
var b=a;
Здесь переменная a
- это Instance, а переменная b
- это Ссылка