DrS*_*ove 2 javascript oop jquery
OOP通常需要实例化(在使用之前创建类的实例),如下所示:
var x = new String();
Run Code Online (Sandbox Code Playgroud)
在jQuery(和其他框架)中,我们可以使用没有实例化的对象,例如(没有'new'):
$('#myid').click(function(){
//code
});
Run Code Online (Sandbox Code Playgroud)
这是我的问题:框架作者如何制作它?如何在没有"新"实例化的情况下使框架可以使用?
提前致谢!!
最简单,最有用的答案(遗漏了很多关于JavaScript与基于类的语言的不同之处)是创建一个新对象并从jQuery函数返回.
您将在jQuery源代码中看到的第一件事:
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
}
Run Code Online (Sandbox Code Playgroud)
你可以看到它$只是jQuery以后在源代码中的别名:
// Expose jQuery to the global object
return (window.jQuery = window.$ = jQuery);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3417 次 |
| 最近记录: |