如果我没有错,那么javascript中没有'Class'
这样的东西,而是一切都是对象。
但我偶然发现一个实际上有类的代码/脚本。
我想知道如何(下面给出的代码示例)
1)这种类型的代码编写是否有助于管理代码和功能? (是的,我认为一切都在全局Sidebar对象中,所以它的好,命名空间,没有冲突。你的意见?)
2)你如何调用在这类课程中写的任何函数?
3)这种风格实际上是否有任何性能提升?有人可以发布更好的工作示例吗? 脚本取自http://jsfiddle.net/js/Sidebar.js
//注意reportAbuse函数....如何在函数内调用函数?它们是否可公开访问
var Sidebar = new Class({
Implements: [Options, Events],
parameter: "Sidebar",
options: {
DOM: '',
toggleSidebar: 'toggleSidebar'
},
initialize: function(options) {
this.setOptions(options);
// Some more code
},
toElement: function() {
return this.element;
},
hide: function() {
this.element.hide();
this.contentMargin = $('content').getStyle('marginLeft');
$('content').setStyle('marginLeft', 13);
this.hidden = true;
Layout.resize();
},
show: function() {
$('content').setStyle('marginLeft', this.contentMargin);
this.element.show();
this.hidden = false;
Layout.resize();
},
reportAbuse: {
setup: function() {
this.element = {
textarea: document.id('abuse-text'),
submit: document.id('send-abuse')
};
if (this.element.textarea && this.element.submit) {
this.element.submit.addEvents({
click: this.validate.bind(this)
});
}
},
validate: function(event) {
event.stop();
if (this.element.textarea.get('value').trim() !== '') {
this.send();
} else {
this.element.textarea.highlight();
}
}
// Few more functions within reportAbuse function
}
});
答案 0 :(得分:0)
上面的代码很可能与库prototypejs
结合使用@see http://prototypejs.org/learn/class-inheritance.html
这对于组织代码和创建此类结构/对象非常有用
使用上面的代码,创建一个新的Sidebar对象就像
一样简单var sidebar1 = new Sidebar();
然后调用其中定义的任何函数:
sidebar1.show();