js实现$
JavaScript 实现 $ 符号功能
在 JavaScript 中,$ 符号通常作为变量名或函数名的前缀使用。它本身没有特殊含义,但常见于 jQuery 等库中作为主函数的别名。以下是几种常见的实现方式:
自定义 $ 函数
定义一个简单的 $ 函数,用于 DOM 元素选择:

function $(selector) {
return document.querySelector(selector);
}
// 使用示例
const element = $('#myElement');
实现类 jQuery 的链式调用
扩展 $ 函数功能,支持链式调用:
function $(selector) {
const elements = document.querySelectorAll(selector);
return {
elements,
css: function(property, value) {
this.elements.forEach(el => {
el.style[property] = value;
});
return this;
},
hide: function() {
return this.css('display', 'none');
}
};
}
// 使用示例
$('.item').css('color', 'red').hide();
实现简单的模板字符串替换
创建支持模板字符串的 $ 函数:

function $(strings, ...values) {
return strings.reduce((result, str, i) => {
return result + str + (values[i] || '');
}, '');
}
// 使用示例
const name = 'World';
const greeting = $`Hello, ${name}!`;
实现简单的数据绑定
创建一个响应式数据绑定的简化版:
function $(initialValue) {
let value = initialValue;
const subscribers = new Set();
return {
get value() {
return value;
},
set value(newValue) {
value = newValue;
subscribers.forEach(fn => fn(value));
},
subscribe(fn) {
subscribers.add(fn);
return () => subscribers.delete(fn);
}
};
}
// 使用示例
const state = $(0);
state.subscribe(val => console.log('Value changed:', val));
state.value = 1;
实现 Promise 包装器
创建一个简化异步操作的 $ 函数:
function $(promise) {
return {
then: promise.then.bind(promise),
catch: promise.catch.bind(promise),
finally: promise.finally.bind(promise)
};
}
// 使用示例
$(fetch('https://api.example.com/data'))
.then(response => response.json())
.then(data => console.log(data));
这些实现展示了 $ 符号在 JavaScript 中的多种用途,从简单的 DOM 操作到复杂的状态管理。实际应用中可以根据需求选择合适的实现方式。






