js实现$(window)
在JavaScript中实现类似jQuery的$(window)功能,可以通过原生API或自定义封装来完成。以下是几种实现方式:
原生JavaScript实现
使用window对象直接操作,无需额外封装:
// 监听窗口加载事件
window.addEventListener('load', function() {
console.log('Window loaded');
});
// 监听窗口滚动事件
window.addEventListener('scroll', function() {
console.log('Window scrolled');
});
自定义封装类似jQuery的$函数
创建一个简化版的$函数来包装window对象:
function $(selector) {
if (selector === 'window') {
return {
on: function(event, callback) {
window.addEventListener(event, callback);
},
ready: function(callback) {
document.addEventListener('DOMContentLoaded', callback);
}
};
}
// 其他选择器逻辑...
}
// 使用示例
$('window').on('scroll', function() {
console.log('Custom window scroll handler');
});
使用现代JavaScript的Proxy实现
通过Proxy动态拦截$调用:

const $ = new Proxy({}, {
get(target, prop) {
if (prop === 'window') {
return {
on(event, handler) {
window.addEventListener(event, handler);
}
};
}
// 其他属性处理...
}
});
// 使用示例
$.window.on('resize', () => {
console.log('Window resized');
});
注意事项
- 原生
window对象已包含所有浏览器API,直接使用性能最佳 - 自定义封装时需考虑事件解绑、事件委托等扩展功能
- 现代前端框架(Vue/React等)通常有自定的生命周期管理,可能不需要此类封装
以上方法可根据项目需求选择实现,简单场景推荐直接使用原生API。






