8
回答
jquery问题,请指点
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

http://www.oschina.net/question/53432_163517

var step = (function() {
    var step = {
        Creat_Table:function() {
                     alert('运行');
        },
        hebingFunction:function() {
          
        },
        doExchange:function() {
          
        }
    };
    return step;
}());
 
step.Creat_Table()



请问这个是jquery中的什么技术?什么知识点?可以使用
:
之前的来访问后面的函数。。好像在那里见过。新手请指点。

举报
Helloall
发帖于3年前 8回/290阅
共有8个答案 最后回答: 3年前

引用来自“LinuxGod”的评论

var Ajax = {
     createXHR:function(){
            if(window.XMLHttpRequest){
                  var xhr = new XMLHttpRequest();
                  return xhr;
            }else if(window.ActiveXObject){
                var xhr = new ActiveXObject("Microsoft.XMLHTTP");
                return xhr;
            }
           },
     sendRequest:function(method,url,data,callback){
            var xhr = this.createXHR();
            xhr.open(method,url);
            if(method=="GET"){
                xhr.send(null);
            }else if(method=="POST"){
                xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xhr.send(data);
            }
            xhr.onreadystatechange=function(){
                if(xhr.readyState==4&&xhr.status==200){
			var p = {
			    text:xhr.responseText,
			    xml:xhr.responseXML
			}
			callback(p);  //
                }
           }
    }
};



带参数,外部调用该怎么传值?

需要穿什么参数可以放在function()里面定义。

外部调用就是Ajax.sendRequest(参数);

sendRequest:function(method,url,data,callback){}

等价于

function sendRequest(method,url,data,callback){}

--- 共有 1 条评论 ---
LinuxGod哦哦!! 原来我就是这么写的,没成功;我还以为不能这么传参呢。 3年前 回复
跟jquery 没有半毛钱的关系。js 封装而已
--- 共有 3 条评论 ---
纠结名字综合楼主右边几个问题,基本断定楼主没有js基础,这个时候应该先找个js基础教程,这些都是最基本的。 3年前 回复
酱哥哥回复 @_Obama : 不是,只是Js 封装,里面的方法是自己定义的,跟你面向对象差不多,你看到最后一句方法的调用了吗?,这只是一种写法而已 3年前 回复
Helloall这是不是json?? 3年前 回复

不知道为什么写这么复杂?

    varstep = {
        Creat_Table:function() {
                     alert('运行');
        },
        hebingFunction:function() {
           
        },
        doExchange:function() {
           
        }
    };
上面的写法,和我这么写,有什么区别?


--- 共有 2 条评论 ---
sxgkwei回复 @hmh : 可是他这不是没有定义嘛。。。 3年前 回复
hmh他这样写可以定义私有变量! 3年前 回复
这是一个被立即执行的匿名函数,函数返回一个对象给变量step,这个对象有三个方法,最后一句是调用对象中的一个方法。
var Ajax = {
     createXHR:function(){
            if(window.XMLHttpRequest){
                  var xhr = new XMLHttpRequest();
                  return xhr;
            }else if(window.ActiveXObject){
                var xhr = new ActiveXObject("Microsoft.XMLHTTP");
                return xhr;
            }
           },
     sendRequest:function(method,url,data,callback){
            var xhr = this.createXHR();
            xhr.open(method,url);
            if(method=="GET"){
                xhr.send(null);
            }else if(method=="POST"){
                xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xhr.send(data);
            }
            xhr.onreadystatechange=function(){
                if(xhr.readyState==4&&xhr.status==200){
			var p = {
			    text:xhr.responseText,
			    xml:xhr.responseXML
			}
			callback(p);  //
                }
           }
    }
};



带参数,外部调用该怎么传值?

引用来自“yunfound”的评论

可以称之为“闭包”!

写这么复杂,是为了防止全局变量污染!

就是这个作用,没错。
顶部