如何向用户显示回调函数的参数?
我正在通过javascript为表编写分页组件。 这是我的组件代码。 (尚未完成)
function ComponentPagination(paginationAreaID, pageViewDataCount ,
totalDataCount, ajaxUrl)
{
//div
var paginationArea = document.getElementById(paginationAreaID);
//prev button
var prevBtn = document.createElement("a");
prevBtn.textContent = "Prev";
paginationArea.appendChild(prevBtn);
//page buttons
var pageCount = (totalDataCount / pageviewDataCount);
for (var i = 0; i < pageCount; ++i) {
var pageBtn = document.createElement("a");
pageBtn.textContent = (i + 1) + "";
paginationArea.appendChild(pageBtn);
}
//next button
var nextBtn = document.createElement("a");
nextBtn.textContent = "Next"
paginationArea.appendChild(nextBtn);
//Use this method to set callback function
//The call back function called when user click page button <a> or
//next or prev button.
this.addCallBack = function(onUpdatePagingMethod)
{
// (example)
var clickedButton;// = clickedButtonIndex;
this.onUpdatePagingMethodCallBack = onUpdatePagingMethod;
//and then it will call when update will neccessay
//like this.onUpdatePagingMethodCallBack(clickedButton, ajaxUrl);
}
}
用户将使用此类似..
<script>
windows.onload = function()
{
//the total data is 105 and the page will show each 10 items
var pagination = new ComponentPagination("pageArea", 10,
105,"/API/FileList");
//Register CallBack
pagination.addCallBack( onPageUpdate );
}
然后用户将设计名称在PageUpdate上的回调函数。
但是,用户无法知道回调函数的参数信息 addCallBack()方法想要。喜欢这个。
function onPageUpdate(/* hum? how should i know the parameter? */)
{
}
嗯..在c或c ++中有函数指针(也许它们使用的是typedef),所以它可以限制参数数量和每种类型,用户可以推断出如何设计回调函数和参数含义。
我不知道如何在javascript中限制或调用参数信息给用户。 对此有什么想法吗?评论只是解决这个问题的方法吗?
p.s:不像ts,我只想要js。
答案 0 :(得分:0)
所有功能参数都出现在Arguments Scope中
你在任何函数内部console.log(arguments)
,它会记录你控制台上的所有参数。
编辑: 除非通过注释的常规文档方式,否则在JavaScript中无法预定义回调签名。
这在TypeScript中也是可行的,但格式相似。
public myCallback: (name: type) => returntype;
答案 1 :(得分:0)
如果您想要参数,可以使用参数:
function onPageUpdate()
{
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
答案 2 :(得分:0)
Javascript没有办法在代码中声明回调函数的签名。您应该将它放在组件的文档中,例如
onPageUpdate
:function(string argName1,object argName2,...)
有关示例,请参阅jQuery如何描述jQuery.each