[英]How to show callback function's parameter in javascript?
如何向用戶顯示回調函數的參數?
我正在用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中限制或調用用戶的參數信息。 有什么想法嗎? 評論是解決這個問題的唯一方法嗎?
ps:不像ts,我只想要js。
所有函數參數都存在於您在console.log(arguments)
任何函數的Arguments Scope中 ,並且它將在控制台上記錄所有參數。
編輯:除非通過注釋通常的文檔方式,否則在JavaScript中無法預定義回調的簽名。
不過,在TypeScript中這是可能的,格式類似。 public myCallback: (name: type) => returntype;
好吧,如果您想要參數,則可以使用參數:
function onPageUpdate()
{
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
Javascript無法在代碼中聲明回調函數的簽名。 您應該將其放在組件的文檔中,例如
onPageUpdate
:函數(字符串argName1,對象argName2,...)
舉一個例子,看看jQuery的描述在回調函數jQuery.each
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.