var name=“窗口”; var对象={ name:“Object”, getName:function(){ 返回this.name; } } (object.getName)()// “对象” (object.getName=对象.getName)()// “窗口”
-
developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/… —— 光环 2013年4月19日4:49 -
的价值 这 函数内部依赖于 它是怎么叫的 ,不是 如何或在何处定义 . 这 肯定是SO中谈论最多的事情。 —— techfoobar公司 2013年4月19日4:50 -
看看这个: stackoverflow.com/questions/3117429/javascript-his-keyword —— 埃日尔五世 2013年4月19日4:52 -
@AurA——MDN分类有点奇怪 这 作为操作员。 这是一个关键词。 —— 罗布·G 2013年4月19日4:57 -
还请考虑严格模式,在这种模式下,当函数不使用特定上下文或由所有者对象调用时, 这 未定义,不是全局上下文的回退。 —— 阿托德里亚 2013年4月19日6:19
4个答案
var name=“窗口”;
var全局=此; global.name=“窗口”;
(object.getName=对象.getName)
(object.getName=对象.getName)();
分配:object.getName被分配了一些处理程序。 在这种情况下,它被分配给自身。 处理程序的执行。 现在,处理程序已被执行,但这次我们没有上下文。 处理程序由窗口执行。 所以您得到的是window.name,它是“窗口”
var x=对象名称; x();
var x=对象名称; x();
var temp=(object.getName=对象.getName); 温度()// “窗口”