论坛首页 Web前端技术论坛

var func=function 和 function func() 这两种定义函数的方法有什么不同?

浏览 8562 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-09  
刚才用prototype.js的Ajax.Request才发现,var 定义的函数和 function 定义的函数有不同的地方,google了一遍找不到答案,特求解

代码如下:

window.onload = function() {
	var dataObject;
	var url = "testCard.js";
	new Ajax.Request(url,{
		method	:	"post",
		onComplete	:	domRender
	});
			
	function domRender(xmldom) { // 这里改成 var domRender = function() 就不行了
		var cardObj = new Card($("testCard"), xmldom);
		cardObj.render();
	}
}
   发表时间:2006-11-09  
1.没区别!

2.
function domRender(xmldom) { // 这里改成 var domRender = function() 就不行了

应该成
var domRender = function(xmldom){
0 请登录后投票
   发表时间:2006-11-09  
楼上,那个参数少加了是我笔误
可能在处理回调函数才有区别吧
0 请登录后投票
   发表时间:2006-11-09  
为什么不这样写?
window.onload = function() {   
    var dataObject;   
    var url = "testCard.js";   
    new Ajax.Request(url,{   
        method  :   "post",   
        onComplete  :   function(xmldom) {  
            var cardObj = new Card($("testCard"), xmldom);   
            cardObj.render();   
        }   
    }); 
}
0 请登录后投票
   发表时间:2006-11-09  
http://www.iteye.com/topic/19506
0 请登录后投票
   发表时间:2006-12-01  
//function语句
function f(x) { return x*x; }
//Function()构造函数
var f=new Function("x","return x*x;")
//函数直接量
var f = function(x){
          return x*x;
};
函数直接量是一个表达式,它定义匿名函数.函数直接量的语法和function语法非常相似,只不过它被用作表达式,而不是作为语句,而且也无需指定函数名
0 请登录后投票
   发表时间:2006-12-16  
建议树立JS对象的概念.
1>var a = function();
2>function a(){};
这里的a都是一个function的对象,即typeof a == 'function'返回true,a都可以当一个方法直接调用,即a();也可以当一个对象传递到任何地方。但1>这种形式只支持变量的定义,凡是符合js命名规则的变量均可以把function(){}赋给它。而2>这种形式支持function obj.attr(){}的形式,比如常见的function window.onload(){};而这个时候你不能写成var window.onload = function(){};必须把var去掉。其次,在创建她们对象方面,都可以使用var obj = new a();的形式,没有差别;在处理var t = {a:function(){}};此时,就只能使用1>这种形式了。因为2>无能为力。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics