如果我在if语句中使用“This”,它会引用选中的值吗?

时间:2014-12-11 19:00:42

标签: javascript jquery

好吧很难把这个问题写成一个问题所以我最好的办法就是问一个例子

如果我有? :运算符,请执行以下操作:

var hash = self.randomObject(d[0]) ? this : false;

并且返回了一个非假名值,并使用this部分将var设置为self.randomObject(d[0])内的任何值,或者它会简单地返回,因为通过输入的数据说这个变量是一个简单的true

这总是让我觉得它的作用和它所指的是什么......所以我很想知道将来的目的。谢谢!

2 个答案:

答案 0 :(得分:4)

它会将hash分配给该特定范围内的this值。它不会是你描述的任何候选人。

例如:

 var hash;
 var a = {
     method: function() {
          hash = ("hello" === "hello") ? this : false;
     }
 }

 a.method();
 console.log(a === hash); // outputs true - hash is now equal to a

在执行函数中,hash将被分配a个对象,因为a是该上下文中this的值。

答案 1 :(得分:1)

完全取决于其范围。

如果它被包含在这样的函数中:

function someFunction() {
   var hash = self.randomObject(d[0]) ? this : false;
}

然后hash将等于函数(当你使用对象时这更有意义。)

如果你没有将它包含在函数中,那么它的范围将设置为window。因此,hash将引用window对象。