This question already has answers here:
JavaScript function aliasing doesn't seem to work
                                
                                    (6个答案)
                                
                        
                                4年前关闭。
            
                    
为了好玩,我尝试通过像jQuery一样使它可用来创建document.querySelectorAll的简写版本。这是代码:

window.$ = document.querySelectorAll;

var links;
links = document.querySelectorAll('a'); // Works
links = $('a'); // Doesn't work


由于某些原因,即使$是对document.querySelectorAll的引用,它也不起作用。我知道我可以这样做:

function $(selector) {
  return document.querySelectorAll(selector);
}


但我只是不明白为什么第一个示例不起作用。

最佳答案

不同的this变量:

document.querySelectorAll() -> `this` is document
querySelectorAll() -> `this` is window

09-26 16:25