JavaScript 学习笔记

来源:互联网 发布:淘宝销售怎么赚钱 编辑:程序博客网 时间:2024/06/05 08:13

1slice用法  

此方法是数组Array的方法,其作用是返回数组中的内容。用法如下:


var ArrayProto = Array.prototype;

// Create quick reference variables for speed access to core prototypes.
var slice  = ArrayProto.slice;

var agurments = new Array("1","2","3","4");


var dest = slice.call(agurments,1);


此时dest = {“2”,"3","4"}


2自定义事件


var Events=  {


    // Bind an event to a `callback` function. Passing `"all"` will bind
    // the callback to all events fired.
    on: function(name, callback, context) {

      this._events || (this._events = {});
      var events = this._events[name] || (this._events[name] = []);
      events.push({callback: callback, context: context, ctx: context || this});
      
      var t = {callback: callback, context: context, ctx: context || this};
      
      return this;
    },
    trigger:function(name){
   
    var array = [];
    var slice = array.slice;
     
    var fn = this._events[name];
     var args = slice.call(arguments, 1);
    if(fn != null)
    {
    for(x in fn)
    fn[x].callback.apply(this,args);
    }
    }
}


Events.on("alert",function(msg){
alert(msg);
})


调用事件的方式1:

Events.trigger("alert","cdv2");

调用事件的方式2:


Events._events["alert"][0].callback.call(this,("cdv"));


推荐使用方式1。



另外,可以察看同一个事件绑定了几个回调函数。


alert(Events._events["alert"].length);


最后,可以将Events对象Mix到其他对象上,这样其它对象就有了事件绑定功能.


3定义一个外部js文件


将下面的红色字体放入一个单独的.js文件。然后再html文件中引用这个js文件即可。
  (function(){
 
 var root = this;
 
 var Backbone1;
 if (typeof exports !== 'undefined') {
   Backbone1 = exports;
 } else {
   Backbone1 = root.Backbone1 = {};
 }


 // Current version of the library. Keep in sync with `package.json`.
 Backbone1.VERSION = '1.0.0';
 




  }).call(this);

  

也可以直接在html文件中用这种方式定义一个单独的功能模块。代码如下:


<script>  

var  exports = {};
var t = exports;


  (function(){
 
 var root = this;
 
 var Backbone1;
 if (typeof exports !== 'undefined') {
   Backbone1 = exports;
 } else {
   Backbone1 = root.Backbone1 = {};
 }


 // Current version of the library. Keep in sync with `package.json`.
 Backbone1.VERSION = '1.0.0';
 




  }).call(this);
  
  //以上代码段定义了一个Backbone1对象,这个对象外部是可以直接饮用的。如果定义了exports,外面使用时,以exports的对象引用了;如果未定义exports,外面可以直接使用Backbone1对象。


//假如exports已经定义为t,t 的定义见上面的代码。可以用下面这个函数测试,其输出结果是'1.0.0'。
  alert(t.VERSION);


</script>  




0 0
原创粉丝点击