下面给出了某些函数声明的JavaScript代码片段吗?如果不是,有人可以概述一下它们是什么吗?
some_func = function(value) { // some code here }
和
show:function(value){ // some code here }
Justin Johns.. 72
创建函数有六种方式/上下文:
1)标准声明符号(对于具有C背景的人最熟悉)
function foo() {}
所有其余的都是函数表达式:
2)作为对象文字的方法
var obj = { foo: function() {} };
3)作为实例化对象的方法(每次创建都new
被创建)
var Obj = function() { this.foo = function() {}; };
4)作为原型的方法(无论new
执行多少次都只创建一次)
var Obj = function() {}; Obj.prototype.foo = function() {};
5)作为带引用的匿名函数(与#1效果相同)*
var foo = function() {};
6)作为一个立即执行的匿名函数(完全匿名)
(function() {})();
*当我看这个陈述时,我会考虑结果.因此,我并不认为这些是匿名的,因为会立即为函数创建引用,因此不再是匿名的.但对大多数人来说都是一样的.
创建函数有六种方式/上下文:
1)标准声明符号(对于具有C背景的人最熟悉)
function foo() {}
所有其余的都是函数表达式:
2)作为对象文字的方法
var obj = { foo: function() {} };
3)作为实例化对象的方法(每次创建都new
被创建)
var Obj = function() { this.foo = function() {}; };
4)作为原型的方法(无论new
执行多少次都只创建一次)
var Obj = function() {}; Obj.prototype.foo = function() {};
5)作为带引用的匿名函数(与#1效果相同)*
var foo = function() {};
6)作为一个立即执行的匿名函数(完全匿名)
(function() {})();
*当我看这个陈述时,我会考虑结果.因此,我并不认为这些是匿名的,因为会立即为函数创建引用,因此不再是匿名的.但对大多数人来说都是一样的.
第一个是简单地创建匿名函数并将其分配给变量some_func
.所以使用some_func()
将调用该函数.
第二个应该是对象表示法的一部分
var obj = { show:function(value){ // some code here } };
所以,obj.show()将调用该函数
在这两种情况下,您都在创建匿名函数.但在第一种情况下,您只是将其分配给变量.而在第二种情况下,您将其指定为对象的成员(可能在许多其他对象中).