javascript - 调用匿名函数 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”。
解决方案
你不需要使用call
( this.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
,然后将这些链接附加到DOM
使用Node#appendChild
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();
推荐阅读
- spring - @Async 和奇怪的事务竞争条件
- postgresql - AWS postgres RDS 读取复制如何处理架构切换?
- sql - 在 ClickHouse 中加入具有不同值的时间序列
- c# - 将变量添加到列表中并在循环中为它们赋值?
- python - 如何在python中找到从yolo检测到的对象的像素值?
- android - Android Studio 编辑器不适用于 MainActivity
- python - 在认知服务 API 中创建人员组的问题
- c# - 我的 SQLiteDataAdapter.UpdateCommand 有什么问题?
- ldap - 如何为 LDAP/Active Directory 配置 Pentaho 文件?
- nlp - Spacy NLP:对于可以是动词的专有名词 - 根据输入顺序的歧义和基于标点符号的拆分