私は非常にスクリプトで何が起こっているのかについては特定できません。 javascripitのプロパティの変更を理解するために、このスクリプトを書きました。変数ctx
があり、2つのプロパティ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");
}
しかし、私はここではローカル変数exports
にctx.exports
値を格納します。 exports
は誰CN 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");
}
の修正にctx.module.exports
と等しくなる。この場合には何が起こっているかを私に説明?これはJavaスクリプトのスコープの一種です。これは正しい名前を持っていますか? ctx.module.exports
は、それが一致している理由です{}
に対してチェックされる最初の答えによってexpllainedよう
編集
。しかし、その場合には、なぜこの失敗
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");
}
を私が編集を掲載しています。これをチェックしてください –