function test() {
var ex1 = function(parm) {
return this;
}
var ex2 = function(par) {
return this;
}
var result = function() {
console.log('compare and display a boolean result '+ex1(parm).ex2(par));
}
};
これが実行されるときに、それは何も返しません。したがって
var res = Test();
解像度定義されていません。したがって、ex1は定義によって未定義に存在しません。
res.ex1('Sam').ex2('Eddie').result();
私の答えは、これを返すことです。 Do notこれを行う。
function test() {
this.ex1 = function(parm) {
this.param1 = parm;
return this;
}
this.ex2 = function(par) {
this.param2 = par;
return this;
}
this.result = function() {
console.log('compare and display a boolean result ' + (this.param1 == this.param2));
}
return this;
};
this
と入力すると、ウィンドウと同じになります。したがって、あなたはウィンドウオブジェクトを汚染しています。あなたの代わりに何ができるか
:
function Test() {
this.parm;
this.par;
this.ex1 = function(parm) {
this.parm = parm;
return this;
}
this.ex2 = function(par) {
this.par = par;
return this;
}
this.result = function() {
console.log('compare and display a boolean result '+ (this.parm === this.par));
}
};
var res = new Test();
res.ex1('Sam').ex2('Eddie').result();
あなたは新しいテスト(コール):新しいオブジェクトは、それに{}
ところ、この値ポイントを作成しています。その後、関数が実行されます。したがって、オブジェクトには関数が含まれていて、ウィンドウが汚染されることはありません。
出典
2017-05-21 16:09:21
Ced
あなたは質問をするのを忘れていました。 –
どのように比較して結果を表示するのですか? – dab
比較する値は2つだけですか? –