簡體   English   中英

調用匿名函數javascript

[英]call anonymous function javascript

我需要調用函數傳遞參數。 這是我的代碼。

 var myfb; var MyFaceBook = function(response) { this.response = response; }; MyFaceBook.prototype.dd = function(_array) { console.log(_array); } MyFaceBook.prototype.doLike = function(_url) { this.dd(_url); return false; } MyFaceBook.prototype.getTabList = function() { return '<a href="#" onclick="'+this.doLike.call('http://facebook.com')+'"> Like </a> | <a href="#">Share</a> | <a href="#"> Comment </a>'; }; myfb = new MyFaceBook(response = array()); myfb.getTabList(); 

我真正需要的是,當我單擊“贊”按鈕時,我需要管理所傳遞的網址,即“ facebook.com”。

您不需要使用callthis.doLike.call(...) )來調用函數,只需執行this.doLike(...)

 var myfb; var MyFaceBook = function(response) { this.response = response; }; MyFaceBook.prototype.dd = function(_array) { console.log(_array); } MyFaceBook.prototype.doLike = function(_url) { this.dd(_url); return false; } MyFaceBook.prototype.getTabList = function() { return '<a href="#" onclick="myfb.doLike(\\'http://facebook.com\\')"> Like </a> | <a href="#">Share</a> | <a href="#"> Comment </a>'; }; myfb = new MyFaceBook([]); document.body.innerHTML += myfb.getTabList(); 

這不是執行此操作的最佳方法。 您應該使用document.createElement創建鏈接,將事件偵聽器附加到它們EventTarget#addEventListener ,然后使用Node#appendChild將這些鏈接附加到DOM

 const MyFaceBook = function(response) { this.response = response; }; MyFaceBook.prototype.dd = function(_array) { console.log(_array); } MyFaceBook.prototype.doLike = function(_url) { this.dd(_url); return false; } MyFaceBook.prototype.getTabList = function() { const link = document.createElement('a'); link.innerHTML = 'Like'; link.addEventListener("click", () => { this.doLike('http://facebook.com'); }); document.body.appendChild(link); }; const myfb = new MyFaceBook([]); myfb.getTabList(); 

我同意@ ponury-kostek的回答,以及下面的代碼行

myfb = new MyFaceBook(response = array());

你可以用

myfb = new MyFaceBook("your response here");

如果是數組:

myfb = new MyFaceBook(["your response here","another response..."]);

這是一個完整的可執行代碼,可以正常工作:

 var myfb; var MyFaceBook = function(response) { this.response = response; }; MyFaceBook.prototype.dd = function(_array) { console.log(_array); } MyFaceBook.prototype.doLike = function(_url) { this.dd(_url); return false; } MyFaceBook.prototype.getTabList = function() { return '<a href="#" onclick="'+this.doLike('http://facebook.com')+'"> Like </a> | <a href="#">Share</a> | <a href="#"> Comment </a>'; }; myfb = new MyFaceBook(["my response"]); myfb.getTabList(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM