Прошу прощения, я не могу быть очень конкретным для измерения того, что происходит со сценарием. Я написал этот фрагмент скрипта, чтобы понять модификацию свойства в javascripit. У меня есть переменная ctx
и она имеет два свойства: ctx.exports
и ctx.module.exports
. Поскольку вы можете увидеть код int eh ниже, я установил отношение , поэтому, когда изменяется ctx.exports
, значение ctx.module.exports
имеет такое же значение. , но нижеприведенный сценарий предлагает иное.Что происходит в этом скрипте
var ctx = {};
ctx.exports = {};
ctx.module = {
exports: ctx.exports
}
ctx.exports = {
h: "hello"
}
if (ctx.exports == ctx.module.exports) {
console.log("hi");
} else {
console.log("hey");
}
Однако, когда я хранить значение ctx.exports
локальной переменной exports
в этом случае. exports
становится равным ctx.module.exports
на модификации ctx.exports
var ctx = {};
ctx.exports = {};
ctx.module = {
exports: ctx.exports
}
var exports = ctx.exports;
ctx.exports = {
h: "hello"
}
if (exports == ctx.module.exports) {
console.log("hi");
} else {
console.log("hey");
}
сп кто-нибудь объяснить мне, что происходит в этом случае? это тип обзора в java-скрипте. имеет ли это собственное имя?
редактировать
в expllained первым ответе ctx.module.exports
проходит проверку против {}
, поэтому это совпадение. но в таком случае, почему эта неспособность
var ctx = {};
ctx.exports = {};
ctx.module = {
exports: ctx.exports
}
var exports = ctx.exports;
ctx.exports = {
h: "hello"
}
if ({} == ctx.module.exports) {
console.log("hi");
} else {
console.log("hey");
}
я отправил правку. пожалуйста, проверь это –