2 bogexueqianduan bogexueqianduan 于 2016.02.17 18:47 提问

Function构造函数 vs 函数声明的区别是什么?

首先提供一个让我产生疑惑的链接:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions#Function构造函数_vs_函数声明_vs_函数表达式
图片说明
图片中这句话 让我无比疑惑,因为在我理解里,构造函数应该是:

 var name=new Function("x","y","return x*y");

这样的 ,但是图里却说,我理解中最普通的函数声明是一个构造函数!!
求解,难道是我哪里理解错了吗?

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.17 20:19

function multiply(x, y) { ... }
其实是一种简写,相当于
var multiply = function (x, y) { ... }

js中大量使用一种叫做“prototype”(原型)风格的写法来创建对象,在这种场合,构造和返回对象的函数相当于构造函数的职能。

caozhy
caozhy 回复伯格学前端: 就是函数返回值为一个对象
2 年多之前 回复
bogexueqianduan
bogexueqianduan 构造和返回对象这句话 可以解释一下吗?不是很理解
2 年多之前 回复
Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.17 19:43

在java中有一个叫匿名内部类,原理应该是类似的吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Js函数字面量和Function()构造函数的区别||匿名函数
一、什么是匿名函数?在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句:function fn(x){ alert(x); } 函数字面量(Function Literals):var fn = function(x){ alert(x); } Function()构造函数:var fn= new Function( 'x','alert(x);' ) 上面三
Public Function和Function的区别
Public是声明公有变量、类或函数的前缀,此类声明后的对象是公有变量,而没有Public则是Private私有变量。 所谓公有变量,就是指在此类的外面也可以调用这个对象,可以当作接口用,对私有则是指它所声明的对象只能在本类中使用,而在类外调用则程序会报错。 所有类的构造函数都是public域的,如果你的构造函数声明为private,则程序也会报错,这是因为了构造函数是用通过外部执行来初化对象的。
Function() 构造函数
引用自书籍《JavaScript 权威指南》 函数通常使用function关键字来定义,要么以函数定义语句的形式,要么以函数直接量表达式的形式。 函数也可以通过Function()构造函数来定义。 使用Function()构造函数通常比使用函数直接量要难,因此这一技术也并不常用;下面是Function()构造函数创建的一个例子:var f = new Funcion("x","y","retur
delegate function vs callback function
1. Block parameter to method: It is increasingly common to define methods that take a block as a parameter. For example, you can have a method that is defined as follows: - (void)downloadAsynch
sigmoid function vs softmax function
DIFFERENCE BETWEEN SOFTMAX FUNCTION AND SIGMOID FUNCTION二者主要的区别见于, softmax 用于多分类,sigmoid 则主要用于二分类;
Js函数声明与函数表达式的区别
在定义函数时,我们一般使用下面这两种方法: 使用函数声明定义:function sum (a, b) { return a + b; } 使用函数表达式定义: var sum = function (a, b) { return a + b; } 调用方法都是一样的:如求“1+1”等于几: alert(sum(1, 1));但这两种方法还是有区别的。解析器在向执行环境
函数声明之function与var
纸上得来终觉浅,绝知此事要躬行。     软件这行业,很多东西还是要靠敲代码敲出来的,你以为看书看的很通透,例子也能做出来的东西,一需要深入混合运用顿时觉得懵逼了。关键还是在于一知半解,不够深入。     今天我就总结一下近段时间遇到并纠结过的一些知识。     老规矩,由浅入深,用发散性思维思考每个知识点。 一、声明一个函数 function与var 1.function
Function构造函数
Function()构造函数  函数实际上是功能完整的对象 。Function类可以表示开发者定义的任何函数。用Function类直接创建函数的语法如下:  var function_name = new function(arg1, arg2, ..., argN, function_body)  在上面的形式中,每个 arg 都是一个参数,最后一个参数是函数主体(要执行的代码)。这些参数
JavaScript Function、函数声明、函数表达式
JavaScript Function、函数声明、函数表达式Function 对象Function 构造器会创建一个新的 Function 对象。 在 JavaScript 中每个函数都是一个 Function 对象。// 使用 Function 构造函数创建函数 new Function ([arg1[, arg2[, ...argN]],] functionBody)例子var func = n
Multi-thread VS function call
The rule for using multi-thread to replace the function call inside the single thread.1) Performance: When the execution time of function call is more than 0.1 second, the efficiency of CPU will be lo