我在对象文字中创建一个依赖于传递'这个'自调用函数内的对象文字的值。一个简单的例子是:
var obj = {
whoAmI: function(){console.log('I\'m this: ' + this + ' object that exists with it\'s own scope')},
getThis: (function(self){return self})(this)
}
console.log( obj.whoAmI() ); // shows the value of this as the object literal
console.log( obj.getThis ); // logs the window object to the console
我理解对象文字创造了它自己的一次性范围,但我感到惊讶的是我无法通过这个'这个'从object literal作为参数到匿名函数。