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自定义事件
// 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>