在编写JS框架时有时会遇到编写的方法涉及复杂的操作或需要定义特殊的私有变量。这是可以使用函数变换技术来达到这个目的。闲话少说上代码:
代码一:
下面的代码是截取的部分代码解决的是
var $ = document.getElementById;
$('idvalue')报错的问题。
// 修复document.getElementById
document.getElementById = (function(fn){
return function(){
return fn.apply(document,arguments);
};
})(document.getElementById);
Ext的extend方法
// 类继承函数,基于javascript的prototype,模仿面相对象的继承特性。
// 整个ExtJS框架的继承机制就是这个函数实现的。
//函数变换
extend : function() {
// Object的构造函数( 不可访问的私有变量,但是extend方法中可以使用 )
var oc = Object.prototype.constructor;
var io = function( o ) {
for ( var m in o ) {
this[m] = o[m];
}
};
return function( sb , sp , overrides ) {
//此方法中可以使用上面定义的私有变量oc,及私有方法io
//do something with sb........
return sb;
};//end
}()