javascript模拟jQuery语法

fro*_*zen 2 javascript

在jQuery中,'$'别名有很多用途.它就像一个函数:

$('#someid')
Run Code Online (Sandbox Code Playgroud)

但你也可以把它作为一个对象:

$.attr('id', 'hello');
Run Code Online (Sandbox Code Playgroud)

如何创建具有此属性的函数(可以作为自身和方法调用对象)?

编辑:

此外,有时你可以像这样链:

$('id').html('<span>Hello</span>);
Run Code Online (Sandbox Code Playgroud)

如何扩展对象以支持此功能?

Joe*_*lay 8

函数 JavaScript 中的对象,因此您可以像对任何其他对象一样向函数添加属性.

function $(id) {
    // blah blah
}

$.attr = function (id, attr) {
    // blah blah
}
Run Code Online (Sandbox Code Playgroud)