如何看待javascript语言将函数作为参数互相传递,别的语言也有类似这样的设计吗?

如题
这种设计的初衷是什么,会不会产生什么不可预知的问题?尤其是this指向的问题
别的语言有没有类似这样的设计?

阅读 221
评论 2019-04-17 提问
    4 个回答
    • 3.3k

    这有什么奇怪的,只是javascript引入函数式编程的结果,函数式编程在javascript之前就已经出现成熟,javascript后来引入,但并没有成为一种很典型的函数式语言。lambda表达式也是在es5或者es6才引进,解决this问题。

    this是面向对象语言的特征,不是函数式语言特征,函数式语言特征就是把函数作为参数传递,理论上不需要this。其他函数式语言,比如典型的python,scala,go等都和OO有关系,也有this,但this从来都没有类似js那样的问题。this可以和函数式编程很好兼容。

    c#自从引入lambda表达式之后具有函数式语言特征,java8照搬,然后js才引入。

      这不是设计问题

        • 2.6k

        这是具体实现策略。
        其他语言其实也有类似的处理,比如C中的函数指针的传递。

          汇编都可以的,高级语言有什么不可的

            撰写回答

            登录后参与交流、获取后续更新提醒