好吧很难把这个问题写成一个问题所以我最好的办法就是问一个例子
如果我有? :
运算符,请执行以下操作:
var hash = self.randomObject(d[0]) ? this : false;
并且返回了一个非假名值,并使用this
部分将var设置为self.randomObject(d[0])
内的任何值,或者它会简单地返回,因为通过输入的数据说这个变量是一个简单的true
这总是让我觉得它的作用和它所指的是什么......所以我很想知道将来的目的。谢谢!
答案 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
对象。