使用jQuery,这是我在JS中编写的大多数类的格式:
$.Tabs = function(options){
var self = this;
this.defaults = {};
var cfg = $.extend(true, {}, this.defaults, options);
this.$elem = cfg.$elem;
function _init(){
var dontInit = false;
if (!cfg.$elem || !cfg.requiredProperty){
alert('missing params');
dontInit = true;
}
if (!dontInit){
self.$elem.bridge(self);
}
}
this.show = function(){};
this.hide = function(){};
_init();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码就是一个例子.
我的问题是,你如何从你的课程中推断出常见的任务/功能,所以你写的每一个新课程,你都不必重新输入所有内容?
我创建了一个基于John Resig的Simple Javascript Inheritance模式的类创建脚本,它允许您需要某些参数,绑定pub/sub模式的事件侦听器,自动将默认值与传入的选项组合在一起,并在DOM之间创建一个桥梁element和类实例(即$('elem').data('instanceNamespace',classInstance);)
但是我不断使用这个类脚本来编写我的类,因为它使它们的可移植性降低.但是,当我觉得这些方面可以被抽象出来时,我不希望我的所有课程之间有如此多的相似之处.
思考?或者你如何格式化你的Javascript类?
提前致谢.
编辑:此外,是否有人知道使用类创建脚本对性能的影响?我假设额外的闭包增加了开销,但它是否足以让它不值得使用?
快问.我刚刚在JS文件中遇到以下内容:
if (0) {
// code
}
Run Code Online (Sandbox Code Playgroud)
这个if语句的目的是什么?代码会执行哪些情况?它目前不运行if子句中的代码.