diff --git a/score/Core/ComponentTrait.php b/score/Core/ComponentTrait.php index 5c862f1c..6aa3f123 100644 --- a/score/Core/ComponentTrait.php +++ b/score/Core/ComponentTrait.php @@ -195,7 +195,11 @@ protected function buildInstance($class, $defination, $params, $com_alias_name) } if($name == SWOOLEFY_COM_FUNC) { - call_user_func_array([$object, $defination[$name]], [$defination]); + if(is_string($defination[$name])) { + call_user_func_array([$object, $defination[$name]], [$defination]); + }else if($defination[$name] instanceof Closure) { + call_user_func_array($defination[$name]->bindTo($object, get_class($object)), [$defination]); + } continue; }else if(is_array($object->$name)) { $object->$name = array_merge($object->$name, $value);