求教一段js代码解释

var Class = {
create: function() {
return function() { this.init.apply(this, arguments); };
}
};
var Drag = Class.create();

为什么这么创建对象?求高手释疑

this.init.apply(this, arguments);
的含义是调用 this对象的init函数,将外层函数的参数传递给init函数。

例如:
var Class = {
create: function() {
return function() { this.init.apply(this, arguments); };
}
};
var a = {
drag: Class.create(),
init: function(aa){
console.log(aa);
}
};

a.drag(123);

至于你给出的代码中的var Drag = Class.create(); 
可能要结合你的上下文代码来看具体的作用。单就这一段代码来看是没什么用的。

看Class.create();的返回内容,要赋值给一个具有init函数的对象上才有用。

看个人喜好,进行了一次封装,减少了代码量

js是面向过程的语言
把这种思想变换成面向对象的思想

如果你是java或学过面向对象语言的 就这样理解
Class 是类名 里面的是静态方法

至于为什么要这样呢? 因为js 只要在一个页面所有的js函数都是在一个栈里面 为了避免冲突 更确切的说相当于一个命名空间 避免冲突

对应的面向对象思想还有一种写法

var Class = function(_name){
this.name = _name;
this.alertName = function(){
alert(this.name);
}
}

var class = new Class("我");
class.alertName();