【关于JQuery设计思想之 方法函数化是什么意思啊?在线等···】 JQuery设计思想 方法函数化: 1.原生的 window.onload innerHTML onclick 2.JQuery的 $() html() click()请问“方法函数化”什么意思啊???? 在线等.............. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单,请加强面向对象基础举例:function $$(id){ var dom=document.getElementById(id); var obj={dom:dom}; obj.html=function(str) { this.dom.innerHTML=str; } obj.click=function(fun) { this.dom.onclick=fun; } return obj;}现在就可以类似jquery那样使用了(注意这是自定义的$$对象,无需引入jquery文件):$$("div1").html("123");$$("div1").click(function(){alert(1);}); 没听说过什么"方法函数化"的说法,不过是在js提供的原生方法外面套了一层罢了,js的基础到了,这些都是水到渠成的理解了,基础不到,扣概念也没用 还有一个问题 在JQuery 中 是不是一事件方法 对应 一个事件 啊 我不用jquery,不知道jquery内部怎么设计的,不过技术上一个事件调用多少函数是没有限制的,就看你怎么设计了,当然本质上事件的方法肯定只有一个,实现上却不受限制同样以刚才的例子改改:function $$(id){ var dom=document.getElementById(id); var obj={dom:dom}; obj.html=function(str) { this.dom.innerHTML=str; } obj.clicks=new Array(); obj.dom.onclick=function() { for(var i=0;i<this.clicks.length;i++) { this.clicks[i](); } } obj.click=function(fun) { this.clicks.push(fun); } return obj;}调用:$("div1").click(function(){alert(1);});$("div1").click(function(){alert(2);});///点击时两个函数都会被调用 刚刚有地方写错了写错function $$(id){ var dom=document.getElementById(id); var obj={dom:dom}; obj.html=function(str) { obj.dom.innerHTML=str; } obj.clicks=new Array(); obj.dom.onclick=function() { for(var i=0;i<obj.clicks.length;i++) { obj.clicks[i](); } } obj.click=function(fun) { obj.clicks.push(fun); } return obj;}调用:$("div1").click(function(){alert(1);});$("div1").click(function(){alert(2);});///点击时两个函数都会被调用 http://www.w3school.com.cn/jquery/jquery_ref_events.asp 你看看这个链接!就知道我问的是什么了啊! 这个要有其它编程语言的基础才能理解。在JS里,其实只有函数而没有方法。而在其它某些语言里,就存在“方法”和“函数”两种相似却不同的概念。其中方法类似于一个没有返回值的函数,也叫作“过程”,就是只执行一系列的指令行为,而不返回任何结果,当然,也许你偏想在里面返回一个结果,但那样的话就会出语法错误了。所以在写之前,要决定好是写成一个方法(过程)还是一个函数。那么既然在JS里没有方法,只有函数,这里的方法函数化,如何理解呢?我个人的理解是,在JS里的函数,也分为有返回值和无返回值的,无返回值的就相当于方法(在此处叫作“过程”更容易理解)。而JQ的一个显著特点就是基于返回对象的链式写法,它把所有原生JS中没有返回值的方法都写成了具有返回值的函数,这些可以从楼主所引用的内容提到的对比出来。由于返回值了对象,就可以接着再写这个对象所具有的方法,而这个方法又是作为函数返回了对象,如此循环。例如:$('#theforever_csdn').css('color:red').html('ok').show(); JQ的目标就是“更少的代码做更多的事”,简洁当然是其主要追求,但同时又要考虑代码阅读理解的逻辑条理性。原生JS中的 onclick 一般只能作为被赋值的操作对象,出现在赋值操作符=号的左边。要调用所赋予的事件处理函数,则要用 对象.click() 去调用。JQ把这两个合并成一个click(),有参数的时候就是赋予该事件的处理函数,而没有参数的时候就是调用处理事件函数。这是一点。同时,JQ的click()还会返回这个JQ对象本身作为函数的返回值,以供以链式写法继续处理与该对象有关的操作。 在JavaScript中方法也有函数,您说的这句话“那么既然在JS里没有方法,只有函数”是不是说错了啊?您能不能解释一下啊!麻烦了啊! 你觉得是我说错的可能性高,还是你不懂的可能性高??你说我说错的话,你说说JavaScript中方法是用哪个关键字定义的??? 【求助】一个图片切换功能的代码怎么实现有效果切换呢? 问个正则表达式的问题 请教JS正则表达式 如何令一块div停留在屏幕的底部? 新人求助~ 如何让页面延时显示 在jsp页面中,怎样根据读取数据库的速度设置easyui进度条的进度 文本框中的内容能不能居中对齐? 在线求助:JavaScript属性问题!具体参加文章内容! 如何删除<tr> 请问怎么判断一个元素是select还是radio 【救命帖】各位大哥,小弟求助啊,HTML中插入两个<script>,不能同时有用 【关于JQuery设计思想之 方法函数化是什么意思啊?在线等···】
举例:
function $$(id)
{
var dom=document.getElementById(id);
var obj={dom:dom};
obj.html=function(str)
{
this.dom.innerHTML=str;
}
obj.click=function(fun)
{
this.dom.onclick=fun;
}
return obj;
}现在就可以类似jquery那样使用了(注意这是自定义的$$对象,无需引入jquery文件):
$$("div1").html("123");
$$("div1").click(function(){alert(1);});
不过是在js提供的原生方法外面套了一层罢了,
js的基础到了,这些都是水到渠成的理解了,基础不到,扣概念也没用
同样以刚才的例子改改:function $$(id)
{
var dom=document.getElementById(id);
var obj={dom:dom};
obj.html=function(str)
{
this.dom.innerHTML=str;
}
obj.clicks=new Array();
obj.dom.onclick=function()
{
for(var i=0;i<this.clicks.length;i++)
{
this.clicks[i]();
}
}
obj.click=function(fun)
{
this.clicks.push(fun);
}
return obj;
}
调用:
$("div1").click(function(){alert(1);});
$("div1").click(function(){alert(2);});
///点击时两个函数都会被调用
{
var dom=document.getElementById(id);
var obj={dom:dom};
obj.html=function(str)
{
obj.dom.innerHTML=str;
}
obj.clicks=new Array();
obj.dom.onclick=function()
{
for(var i=0;i<obj.clicks.length;i++)
{
obj.clicks[i]();
}
}
obj.click=function(fun)
{
obj.clicks.push(fun);
}
return obj;
}
调用:
$("div1").click(function(){alert(1);});
$("div1").click(function(){alert(2);});
///点击时两个函数都会被调用
这个要有其它编程语言的基础才能理解。在JS里,其实只有函数而没有方法。而在其它某些语言里,就存在“方法”和“函数”两种相似却不同的概念。其中方法类似于一个没有返回值的函数,也叫作“过程”,就是只执行一系列的指令行为,而不返回任何结果,当然,也许你偏想在里面返回一个结果,但那样的话就会出语法错误了。所以在写之前,要决定好是写成一个方法(过程)还是一个函数。那么既然在JS里没有方法,只有函数,这里的方法函数化,如何理解呢?我个人的理解是,在JS里的函数,也分为有返回值和无返回值的,无返回值的就相当于方法(在此处叫作“过程”更容易理解)。而JQ的一个显著特点就是基于返回对象的链式写法,它把所有原生JS中没有返回值的方法都写成了具有返回值的函数,这些可以从楼主所引用的内容提到的对比出来。由于返回值了对象,就可以接着再写这个对象所具有的方法,而这个方法又是作为函数返回了对象,如此循环。例如:$('#theforever_csdn').css('color:red').html('ok').show();
在JavaScript中方法也有函数,您说的这句话“那么既然在JS里没有方法,只有函数”是不是说错了啊?您能不能解释一下啊!麻烦了啊!