2 chenyulove163 chenyulove163 于 2016.05.08 20:34 提问

Jquery中$如何实现的,以及Js面向对象相关问题

众所周知,在Jquery中$符号可以直接使用,也可以传递参数。这个功能是如何实现的,我想了很久,没想明白,或许是对Js不那么了解吧。
在我的测试中。$要么是代表一个对象。要么就只能代表一个函数。我是这样实现的:
var $=new MyObj();
function MyObj(){
this.name="Default!";
}
上面这种可以通过 $去调用name,但是要是$(parameter)就不行了。
然后修改为:
var $=function MyObj(params){
alert(arguments.length);
}
当然这样$成为了function,但是却不是一个Object了。

额外一个问题:
在js中见到这样的写法
(function name(){
函数主体;
})();
最后一个括号表示什么含义呢?有什么作用?
希望有大侠为我解惑,顶礼膜拜!

3个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.05.08 20:54
已采纳
 jquery中 $本身就是一个函数定义
 比如你自己定义的
 var $=function(params){
     alert(arguments.length);
 }
$.a = '2';
$('param');
 alert($.a);

 ===
 (function name(){
函数主体;
})();
匿名函数执行 (function name(){
函数主体;
})返回 function name(){
函数主体;
}函数定义,在加上后面()表示立即执行name这个函数
CSDNXIAOD
CSDNXIAOD   2016.05.08 20:42

使用jquery来实现JS的类面向对象
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

jhfsdfs
jhfsdfs   2016.05.08 22:18

看下jQuery源码就知道了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JS中面向对象简单入门
一,对于面向的简单理解 为了大家对面向对象有一个清晰的认识,我先说一些面向对象的东西。话说为什么要有面向对象的思想?也就是好好的面向过程的程序设计不用,干嘛搞出个面向对象(OO)?我的理解是为了满足工程开发的需要,增加代码的重复利用率(通过继承等),可以提高开发速度。另外也符合人的思考逻辑,面向过程的代码相对比较难看,很难一眼看出来其中的逻辑,面向对象的代码较好维护。 JavaScript
JS 面向对象实现 学习总结
1.js是完全的面向对象语言,其中类的创建格式如下: var person = {     name:"zhanghow",     sex:"boy",     eat:function(food){         console.log("I'm eatting ",food)     } }   // 注意的是字段的赋值是冒号取代=      与Lua表的区别 字段的访问:
javascript如何实现面向对象和继承机制
面向对象:function MyObject(){ this.name="myObject"; this.type="class"; this.methodA=function(){ alert(this.name); } this.methodB=function(){ return this.type; } } va
js面向过程与面向对象编程示例(使用jquery库)
js面向对象与面向过程编程的示例,拿常见的鼠标移动移出操作,显示与隐藏div作为示例。
多种方法实现Tab切换—面向过程&面向对象&Jquery方法
TAb切换思路一: 判断是否为当前点击对象,来增加类名和减少类名 要在面向过程的基础上改写成面向对象的方法,需要经过四个步骤: 1、创建构造函数 2、将变量变成对象的属性 3、将函数变成对象的方法 4、实例对象<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Tab1_三种方法实现</tit
js面向对象编程,如何定义属性字段?
都知道js变量有作用域的概念,因此可以使用这个特性定义私有字段,私有字段的初始化主要是通过构造函数。
面向对象在javascript中的三大特征之多态
多态 从某种意义上来说,多态是面向对象中重要的一部分,也是实施继承的主要目的。 一个实例可以拥有多个类型,它既可以是这种类型,也可以是那种类型,这种多种状态被称为类的多态。 继承 继承本身是多态的一种实现。详情请参考上一篇博文:http://blog.csdn.net/tyro_java/article/details/51181638 重载 重载也是多态的一种体现。重载就是同名
Javascript 进阶 面向对象编程 继承的一个例子
Javascript的难点就是面向对象编程,上一篇介绍了Javascript的两种继承方式:Javascript 进阶 继承,这篇使用一个例子来展示js如何面向对象编程,以及如何基于类实现继承。 1、利用面向对象的写法,实现下面这个功能,实时更新数据的一个例子: 2、使用对上面类的继承,完成下面的效果: 好了,不多说,js的训练全靠敲,所以如果觉得面向对象不是很扎实,
js面向对象组件开发---弹窗
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0;
深入理解js面向对象——创建对象
本博客原文在这 由于js这门语言是解析型语言的特性,导致js中的对象更加灵活,更像是一些 属性的集合,或者说类似于散列表或者字典这些数据结构.所以我们可以在使用的时候随着需求对对象中的属性进行增删改查,这完全是动态的不是编译好的.那么 js中的对象是怎么表示的? js对象的内部表示原理是什么? js创建对象有几种方式? 他们的内部执行过程是什么? 通过这篇文章,可以一探究竟.思维导图如下: #