//类定义
A.init=function(para){
var outfun=para["outfun"];
function infun(){
//内部方法
outfun();//内部方法执行完毕后调用外部方法
}//类使用
Combox.init({
"outfun" : myfun
});function myfun(){
//自己的方法
}//如果我调用A.infun()就是先执行A类infun()再执行myfun()
//可是,如果myfun是一个带参数的方法,例如myfun(1,"a"),应该怎么写啊
}
//类定义
A.init=function(para){
var outfun=para["outfun"];
function infun(){
//内部方法
outfun();//内部方法执行完毕后调用外部方法
}
}
//类使用
Combox.init({
"outfun" : myfun
});
function myfun(){
//自己的方法
}
//如果我调用A.infun()就是先执行A类infun()再执行myfun()
//可是,如果myfun是一个带参数的方法,例如myfun(1,"a"),应该怎么写啊
num: 42
};
var second_object = {
num: 24
};
function multiply(mult) {
return this.num * mult;
}
Function.prototype.bind = function(obj) {
var method = this,
temp = function() {
return method.apply(obj, arguments);
};
return temp;
}
var first_multiply = multiply.bind(first_object);
first_multiply(5); // returns 42 * 5
var second_multiply = multiply.bind(second_object);
second_multiply(5); // returns 24 * 5
不是太理解,能解释下吗?如果myfun是这样的:
function myfun(para1,para2,...){//参数数量不定
}
我想知道
第一:
A.init({
"outfun" : myfun //这里我怎么给myfun()设置一个参数
});第二:
A.init=function(para){
var outfun=para["outfun"];
function infun(){
//内部方法
outfun();//这里我执行outfun时怎么使用外面传进来的参数
}
}我的目的是让A.infun执行完后执行调用者自己的方法,该方法有无参数,有几个参数由调用者决定
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
// 委托
function delegate(func, scope) {
scope = scope || window;
if(arguments.length > 2) {
var args = Array.prototype.slice.call(arguments, 2);
return function() {
return func.apply(scope, args);
}
} else {
return function() {
return func.call(scope);
}
}
}
// 比如有这样一个情况,我要在某个地方调用doSomething函数
function doSomething(str) {
alert('do...' + str);
return true;
}
// 这样就获得了doSomething函数的句柄,同时又包含了参数
var handler = delegate(doSomething,window,'wash');
// 这里我就可以在其它地方,可能不在当前页面中,调用这个函数了
// 可以去掉注释看下结果
// alert(handler()) // 等同于alert(doSomething('wash'))
</script>
<script type="text/javascript">
var A = {};
//类定义
A.init = function(para){
var outfun=para["outfun"];
function infun(){
//内部方法
outfun();//内部方法执行完毕后调用外部方法
}
// 调用内部方法
infun();
}
//类使用
A.init({
// 使用工具类
"outfun" : delegate(myfun,window,'wash') // 'wash'就是参数,有没有就自己放
});
function myfun(str){
//自己的方法
alert('do '+str)
}
</script>
</HEAD><BODY></BODY>
</HTML>