【发布时间】:2015-04-03 05:35:21
【问题描述】:
在将 JavaScript 变量的属性设置为函数时,除了将变量设置为指向函数代码的指针之外,还有什么特别之处吗?
这不正是 C# 委托的含义吗?
我知道在 JavaScript 中,您可以像这样直接将函数分配给变量:
var x = function() { return "Hello"; }
在 C# 中有点不同:
Func<string> x = () => { return "Hello"; };
但是这些不是等价的吗?直接分配功能不只是糖吗? JavaScript 将“函数作为对象”的概念与 C# 等语言有什么不同吗?
【问题讨论】:
-
两者都是面向对象的语言,不同的是c#是强类型的,而javascript不是,据我所知它们是等价的
-
JS 和 C# 的匿名函数有一些细微的差别,但是它们非常微妙,很难找到。它们与闭包的处理方式有关...smartik.net/2013/07/… 但最终,除非您尝试做奇怪的事情,否则差异更多的是“如何实现”而不是“使用时如何工作”
-
@bto.rdz 我仍然认为关于 javascript 是一种面向对象的语言存在一些争论,但由于这无关紧要,我已经修改了这个问题。归根结底,它们都是正确的函数指针吗?
-
您要问什么样的差异?它们是两种完全独立的语言和范式,因此很难看出您希望它们在什么基础上进行比较。此外,关于“不是直接......只是糖”。糖有什么用?
-
@Asad 当我提到糖时,我指的是语法糖。请参阅en.wikipedia.org/wiki/Syntactic_sugar。
标签: javascript c# function oop