Является ли JavaScript передачей по ссылке или передачей по значению?

Сначала вам нужно получить общедоступный сертификат с сервера, к которому вы пытаетесь подключиться. Это можно сделать разными способами, например, связаться с администратором сервера и запросить его, с помощью openssl, чтобы загрузить его , или, поскольку это, как представляется, HTTP-сервер, подключающийся к нему с помощью любого браузера, просмотра информации о безопасности страницы и сохранения копии сертификата. (Google должен уметь точно сказать, что делать для вашего конкретного браузера.)

Теперь, когда у вас есть сертификат, сохраненный в файле, вам нужно добавить его в хранилище доверия JVM. В $JAVA_HOME/jre/lib/security/ для JRE или $JAVA_HOME/lib/security для JDK есть файл с именем cacerts, который поставляется с Java и содержит общедоступные сертификаты известных сертифицирующих органов. Чтобы импортировать новый сертификат, запустите keytool как пользователь, у которого есть разрешение на запись в cacerts:

keytool -import -file  -alias  -keystore 

Скорее всего, он попросит вас ввести пароль. Пароль по умолчанию, поставляемый с java, - changeit. Его почти никто не изменяет. После того, как вы выполните эти относительно простые шаги, вы будете уверенно общаться и с уверенностью, что разговариваете с нужным сервером и только с правильным сервером (пока они не потеряют свой закрытый ключ).

1277
задан Peter Mortensen 25 June 2019 в 16:08
поделиться

5 ответов

Простой способ определить, является ли что-то "передачей ссылкой", состоит в том, можно ли записать функцию "подкачки". Например, в C, можно сделать:

void swap(int *i, int *j)
{
    int t;
    t = *i;
    *i = *j;
    *j = t;
}

, Если Вы не можете сделать эквивалента этого в JavaScript, это не "передача ссылкой".

0
ответ дан Peter Mortensen 26 June 2019 в 02:08
поделиться

Существует некоторая дискуссия об использовании термина "передача ссылкой" в JavaScript здесь , но отвечать на Ваш вопрос:

объект А автоматически передается ссылкой без потребности конкретно указать это

(От упомянутой выше статьи.)

1
ответ дан Peter Mortensen 26 June 2019 в 02:08
поделиться

JavaScript всегда передача значением ; все значимо тип.

Объекты являются значениями, и функции членства объектов являются самими значениями (помните, что функции являются первоклассными объектами в JavaScript). Кроме того, относительно понятия, что все в JavaScript объект ; это неправильно. Строки, символы, числа, булевские переменные, аннулируют, и undefineds примитивы .

При случае они могут усилить некоторые функции членства и свойства, наследованные от их основных прототипов, но это только для удобства. Это не означает, что они - сами объекты. Попробуйте следующее за ссылку:

x = "test";
alert(x.foo);
x.foo = 12;
alert(x.foo);

На обоих предупреждениях Вы найдете, что значение не определено.

14
ответ дан Peter Mortensen 26 June 2019 в 02:08
поделиться

Переменная не "содержит" объект; это содержит ссылку. Можно присвоить ту ссылку на другую переменную, и теперь оба ссылаются на тот же объект. Это всегда - передача значением (даже когда то значение является ссылкой...).

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

143
ответ дан Peter Mortensen 26 June 2019 в 02:08
поделиться
  • 1
    Это ничего не изменяет с точки зрения эффективности или it' s немного хуже. SQL компилируется на сервере, не на клиенте. Таким образом, при отправке подготовленного оператора со связанными параметрами, Вы на самом деле отправляете несколько пакетов на сервер (один для подготовительной статистики, один для параметров), таким образом это добавляет задержку. Однако, если Вы снова используете свой подготовительный оператор, тогда it' s усиление, потому что Вы сохраняете время компиляции для оператора и только платите штраф за отправку параметров. – xryl669 20 July 2013 в 01:34

Примитивы передаются по значению, а объекты передаются по ссылке . Это сильно отличается от других языков, таких как C, Visual Basic или Delphi. Я не могу точно сказать, как они обрабатывают объекты и примитивы, но я знаю о Visual Basic и Delphi, что это можно (и нужно) указать.

PHP делает нечто подобное, начиная с версии 5: все объекты передаются по ссылке, но все примитивы могут передаваться по ссылке, если им предшествует амперсанд (&). В противном случае примитивы передаются по значению.

Итак, в JavaScript

-5
ответ дан 19 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: