javascript方法链接比较

javascript方法链接比较,javascript,Javascript,我试图链接ex1和ex2函数,并在比较链接方法中提供的值后显示true或false function test() { var ex1 = function(parm) { return this; } var ex2 = function(par) { return this; } var result = function() { console.log('compare and display a boolean res

我试图链接ex1和ex2函数,并在比较链接方法中提供的值后显示true或false

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();
res.ex1('Sam').ex2('Eddie').result();
提前感谢您的帮助。

您可以这样做:

功能测试{ this.ex1=functionparm{ this.param1=parm; 归还这个; } this.ex2=functionpar{ PARAM2= PAR; 归还这个; } this.result=函数{ log'compare and display a boolean result'+this.param1==this.param2; } //归还这个; }; var res=新测试; res.ex1'Sam'.ex2'Sam'.result 您可以这样做:

功能测试{ this.ex1=functionparm{ this.param1=parm; 归还这个; } this.ex2=functionpar{ PARAM2= PAR; 归还这个; } this.result=函数{ log'compare and display a boolean result'+this.param1==this.param2; } //归还这个; }; var res=新测试;
res.ex1'Sam'.ex2'Sam'.result 您可以使用对象文字,并使其更具可读性:

var测试={ 那就是:函数参数{ this.param1=param; 归还这个; }, isEqualTo:functionparam{ this.param2=param; 返回this.param1===this.param2; } }; console.logTest.that'abc'。isEqualTo'cba';//错误的 console.logTest.that'123'。isEqualTo'321';//错误的 console.logTest.that'asd'。isEqualTo'asd';//符合事实的 console.logTest.that'tre'。isEqualTo'tre';//符合事实的 //或者只是重复使用 测试。那个“词”; console.logTest.isEqualTo'drow';//错误的 console.logTest.isEqualTo'world';//错误的
console.logTest.isEqualTo'word';//true您可以使用对象文字,并使其更具可读性:

var测试={ 那就是:函数参数{ this.param1=param; 归还这个; }, isEqualTo:functionparam{ this.param2=param; 返回this.param1===this.param2; } }; console.logTest.that'abc'。isEqualTo'cba';//错误的 console.logTest.that'123'。isEqualTo'321';//错误的 console.logTest.that'asd'。isEqualTo'asd';//符合事实的 console.logTest.that'tre'。isEqualTo'tre';//符合事实的 //或者只是重复使用 测试。那个“词”; console.logTest.isEqualTo'drow';//错误的 console.logTest.isEqualTo'world';//错误的 console.logTest.isEqualTo'word';//符合事实的 因此,当它执行时,不会返回任何结果:

var res = Test();
因此res是未定义的。因此,ex1不存在于定义未定义的服务器上

res.ex1('Sam').ex2('Eddie').result();
我上面的答案建议你把这个还给我。不要那样做

当它进入函数时,这等于windows。因此,您正在污染窗口对象

你可以做些什么:

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();
调用newtest:在this值指向它的地方{}创建一个新对象。然后执行该函数。因此,对象现在包含函数,并且不会污染窗口

因此,当它执行时,不会返回任何结果:

var res = Test();
因此res是未定义的。因此,ex1不存在于定义未定义的服务器上

res.ex1('Sam').ex2('Eddie').result();
我上面的答案建议你把这个还给我。不要那样做

当它进入函数时,这等于windows。因此,您正在污染窗口对象

你可以做些什么:

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();

调用newtest:在this值指向它的地方{}创建一个新对象。然后执行该函数。因此,对象现在包含函数,并且不会污染您的窗口。

您可以返回一个包含函数的对象,如果调用了内部函数,则返回结果,而无需使用另一个函数进行调用

函数testvalue1{ 返回{ 等于:函数值2{ 返回值1==值2; } }; } console.logtest1.equals1;
console.logtest1.equals2 您可以返回内部包含函数的对象,如果调用了内部函数,则返回结果而不使用其他函数进行调用

函数testvalue1{ 返回{ 等于:函数值2{ 返回值1==值2; } }; } console.logtest1.equals1;

console.logtest1.equals2;你忘了问一个问题。我如何进行比较并显示结果?你只有两个值要比较吗?是的。我只有两个值可以比较。谢谢你的帮助!我的解决方案有帮助吗?在接受解决方案之前,您是否正在查看更多详细信息?您忘了问问题。如何进行比较并显示结果?您是否只有两个值要比较?是的。我只有两个值可以比较。谢谢你的帮助!我的解决方案有帮助吗?在接受解决方案之前,您是否需要了解更多细节?我建议不要这样做,因为这是一种不好的做法。当调用你的函数时,这指向窗口。我将编辑我的答案,以纳入你的观点,以方便将来的读者。谢谢,我试图删除我的否决票,但它说我在5分钟后不能这样做。Sorry@Ced纳入你的评论。此外,您还可以将测试重命名为测试!在您的解决方案中。@Ced感谢Ced!:我建议不要这样做,因为这是个坏习惯。当调用函数时,它指向窗口
为了将来读者的利益,我将编辑我的答案,加入你的观点。谢谢你,我试图删除我的否决票,但它说我5分钟后不能这样做。Sorry@Ced纳入你的评论。此外,您还可以将测试重命名为测试!在您的解决方案中。@Ced感谢Ced!:关于不污染全局名称空间的好观点。但OP并没有走到那个地步,所以解决办法是解决他眼前的问题。顺便说一句,如果你选择构造函数的方法,那么我建议把test重命名为test,因为这是惯例。@PankajShukla我实际上认为他没有用例。。。如果你正在做这种类型的功能,我打赌这是为了学习。否则他将使用===。如果是为了学习,我认为最好向他解释一下发生了什么。此外,如果OP采用构造函数函数路径,他还需要将方法从构造函数内部移动到测试的原型对象。在构造函数中附加方法不是正确的做法。最好不要污染全局命名空间。但OP并没有走到那个地步,所以解决办法是解决他眼前的问题。顺便说一句,如果你选择构造函数的方法,那么我建议把test重命名为test,因为这是惯例。@PankajShukla我实际上认为他没有用例。。。如果你正在做这种类型的功能,我打赌这是为了学习。否则他将使用===。如果是为了学习,我认为最好向他解释一下发生了什么。此外,如果OP采用构造函数函数路径,他还需要将方法从构造函数内部移动到测试的原型对象。在构造函数中附加方法不是正确的做法。