添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Could someone explain why is this not allowed in functions? shouldnt it return a “node” when u return a value from a functions. I tried to refrector code for better cohesion , in strongly typed languges the logic should work if functions are returning the value =/. Am i missing something here ? appreciate any help :slight_smile:

//failed
function addToTargetList()
    targetList.appendChild(addItemsToList);//error
    text.value ="";
function addItemsToList(){
     var list = document.createElement("li");
     list.classList.add("items");
     list.textContent = text.value;
     return list;
//will work but bad cohesion
function addToTargetList()
    var list = document.createElement("li");
    list.classList.add("items");
    list.textContent = text.value;
    targetList.appendChild(addItemsToList);
    text.value ="";
              

What type does addItemsToList return?

Edit: I probably wont remember to check this again in a timely fashion, but here’s a couple of hints:

  • Be aware that your ‘bad cohesion’ function as presented doesn’t work either - it has the same bug as the better code.
  • Use ‘typeof’ to determine what “addItemsToList” is. (syntax is: console.log(typeof addItemsToList)). You are correct that if you call the function it should (and would!) return a Node.
  • Consider how you would rewrite your addItemsToList() function if it took a parameter, and how the call to that function would change (hint, hint!). You don’t need to pass it a parameter, this thought experiment is just to help you find the bug.
  •