Разница между ссылкой и экземпляром в 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 объект

экземпляр-это фактический объект, созданный во время выполнения.


Var a="myObject";
var b=a;

здесь переменная a это экземпляр и переменная b это ссылка


фактическое определение английского языка "instance" и " reference.'

экземпляр: пример или единичное возникновение чего-либо.

ссылка: действие упоминания.

таким образом, принимая во внимание эти два определения фактических слов и применяя его к сценарию JavaScript, вы можете понять, как каждая концепция подходит.