JavaScript怎么在实现的匿名函数的参数中传入数据?

发布于 2022-08-26 19:22:48 字数 1246 浏览 18 评论 0

之前读Angular.js教程的时候,觉得有一段代码引起了我的注意:

function PhoneListCtrl($scope, $http) {
  $http.get('phones/phones.json').success(function(data) {
    $scope.phones = data;
  });
......
}

代码的含义不太难:用get请求了phones.json数据,通过对success函数的实现,将响应返回的data数据存在本地对象phones中,我不太明白的地方是其中的data是如何传入数据的,这种写法貌似也很流行,例如jQuery的Click事件:

$("#div").click(function(eventObject){
    //eventObject
});

然而我试着写一个实现也不太对劲,基础的代码是这样的:

var obj = {
    someData: 101,
    doSomething: function(anonymousFunction) {
        // body...
    }

};

obj.doSomething(function(data) {
        console.log(data);
    }
);

第一次在社区提问,不太懂规矩,请哪位前辈朋友指点一下具体的方法,或提点一下用到了JS中哪种特性或者设计模式,先谢过了~


按照@依云 的指点补充符合题意的写法如下:

var obj = {
    data: 456,
    f: function(func) {
        console.log("I'll call a pass-in function with some arguments.");
        func(obj.data);
        console.log("after");
    }
};

obj.f(function(a) {
    console.log("my arguments are:", a);
});

问题是:func(obj.data);真的是回调吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨小墨 2022-09-02 19:22:49
var f = function(func){
    console.log("I'll call a pass-in function with some arguments.");
    func("this", "is", "your data");
};

f(function(a, b, c, d){
  console.log("my arguments are:", a, b, c, d);
});
救赎№ 2022-09-02 19:22:49

查一下依赖注入和依赖对象吧,一两句说不清楚。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文