日期:2014-05-16  浏览次数:20382 次

【关于JQuery设计思想之 方法函数化是什么意思啊?在线等···】
JQuery设计思想  

  方法函数化:  
  1.原生的  
  window.onload  
  innerHTML  
  onclick  


  2.JQuery的
  $()
  html()
  click()


请问“方法函数化”什么意思啊???? 在线等..............

------解决方案--------------------
简单,请加强面向对象基础
举例:
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内部怎么设计的,不过技术上一个事件调用多少函数是没有限制的,就看你怎么设计了,当然本质上事件的方法肯定只有一个,实现上却不受限制
同样以刚才的例子改改:
JScript code

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);});
///点击时两个函数都会被调用

------解决方案--------------------
刚刚有地方写错了写错
JScript code

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);});
///点击时两个函数都会被调用

------解决方案--------------------
探讨
JQuery设计思想

方法函数化:
1.原生的
window.onload
innerHTML
onclick

2.JQuery的
$()
html()
click()

请问“方法函数化”什么意思啊???? 在线等..............

------解决方案--------------------
JQ的目标就是“更少的代码做更多的事”,简洁当然是其主要追求,但同时又要考虑代码阅读理解的逻辑条理性。

原生JS中的 onclick 一般只能作为被赋值的操作对象,出现在赋值操作符=号的左边。要调用所赋予的事件处理函数,则要用 对象.click() 去调用。

JQ把这两个合并成一个click(),有参数的时候就是赋予该事件的处理函数,而没有参数的时候就是调用处理事件函数。这是一点。同时,JQ的click()还会返回这个JQ对象本身作为函数的返回值,以供以链式写法继续处理与该对象有关的操作。


------解决方案--------------------
探讨
引用:

那么既然在JS里没有方法,只有函数,这里的方法函数化,如何理解呢?我个人的理解是,在JS里的函数,也分为有返回值和无返回值的,无返回值的就相当于方法(在此处叫作“过程”更容易理解)。而JQ的一个显著

在JavaScript中方法也有函数,您说的这句话“那么既然在JS里没有方法,只有函数”是不是说错了啊?您能不能解释一下啊!麻烦了啊!