大家都知道Javascript 有两个种定义Function的方法非常常用。例如
function a(){alert("a")}
var a = function(){alert("a")}
虽然两个种方式定义出来的 function 调用的时候结果一样,但是中间还是有区别的。举个简单的例子,假如我们要重定义 a() ,而且新的方法要继承 a() 里面所有方法并且进行其他扩展的话。就可以明显看到这两个方式的区别了。
1. 首先,我们先建立一个临时的变量来存储 a()
var b = a;
然后,重新定义a()
第一种方式:
function a(){
b();
alert("ok");
}
第二种方式:
a = function(){
b();
alert("ok");
}
这是大家可以尝试发现。第一种方式重新定义的 a() 会出现堆栈溢出的错误。而第二种方式却成功保留了原来 a() 所执行的脚本,成功 alert 出了 "a" "ok" 的字样,说明 a() 的方法被重定义了。
这里就可以很明显区分两个方式的区别了。定义的顺序不同。
第一种,刚开始其实没有重新定义 a 这个function 而在里面执行了其本身。
第二种方式, a = function () 这里没有执行到 function 里面的代码 a 已经被重新定义了。所以这里的重定义是有效的。
分享到:
相关推荐
javascript两种function的定义方式function a(){}和a=function(){}具体使用如下,感兴趣的朋友可以参考下,希望对你对你学习function的定义有所帮助
javascript 面向对象function详解 js中的函数有三种表示方式: //函数的第一种表示方式:函数关键字的方式 function f1() { ... 函数的定义方式一般有以上三种,前两种方式基本没什么区别,第三种定义
在JavaScript中定义JavaScript对象有两种方式: 方式一: var Book ={ getBookName:function(){ alert("获取书的名称") ; } }; 方式二 var oBook = function(){}; oBook.getBookName=...
JavaScript有两种声明函数的方式,一个是函数表达式定义函数,也就是我们说的匿名函数方式,一个是函数语句定义函数,下面看代码: /*方式一*/ var FUNCTION_NAME = function() { /* FUNCTION_BODY */}; /*方式二*/...
函数名当参数,传递给另一个函数 */ //==================js中函数的两种定义方式和函数变量赋值================ //在javascript中定义一个函数就可以理解成定义了一个变量 //js中的变量时弱类型的哦。 //———-1 ...
JavaScript中箭头函数...箭头函数有两种格式,一种只包含一个表达式,连{ ... }和return都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ ... }和return。 箭头函数是匿名函数,不能作为构造函数,不能使用n
使用javascript多年,写过无数函数,今天却才真正弄明白两种函数定义的区别,真是悲剧,写下这个随笔, 以时刻提醒自己要打好基础 , 一大把年纪了, 不能继续懵懵懂懂了。 通常我们会看到以下两种定义函数的方式: ...
Function是javascript里最常用的一个概念,javascript里的function是最容易入手的一个功能,但它也是javascript最难理解最难掌握的一个概念。 1. Function类型是js中引用类型之一,每个函数实际上都是... //两种方
我们知道,给JavaScript类添加原形(prototype)方法是很简单的。而且常用的有下面这两种方法,可是这两种方法在使用时有区别吗? JScript Class: 代码如下: function...# re: JS类定义原型方法的两种实现的区别
而且常用的有下面这两种方法,可是这两种方法在使用时有区别吗? JScript Class: function JSClass() { } Extends prototype method: JSClass.prototype.MethodA = function() { }; Or ...
vue实现页面打印自动分页的两种方法 本文实例为大家分享了vue实现页面打印自动分页的具体代码,供大家参考,具体内容如下 一、通过ref方式获取元素进行打印 1.封装一个js文件 // 打印类属性、方法定义 /* ...
javascript中声明函数的方法有两种:函数声明式和函数表达式. 区别如下: 1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. 2).以函数声明的方法定义的函数,函数可以在函数声明之前调用,...
68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless() 69.状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.'; 70.添加到收藏夹:...
第一种: function Person() { this.username = new Array(); this.password = "123"; } Person.prototype.getInfo = function() { alert(this.username + ", " + this.password); } var p = new Person();...
2) 一个应用程序出现的每个窗口或框架都对应一个Window对象,而且都为客户端JavaScript代码定义了一个唯一的执行环境。 3) 脚本执行过程是Web浏览器的HTML解析过程的一部分。脚本按照它们的出现顺序执行。 4) 简单的...
JS定义一个类有两种定法(我只知道这两种): 1. 定义函数的方式: 定义: 代码如下:function classA(a) { this.aaa=a; //添加一个属性 this.methodA=function(ppp) //添加一个方法 { alert(ppp)...
( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因...
javascript中声明函数的方法有两种:函数声明式和函数表达式. 区别如下: 1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. 2).以函数声明的方法定义的函数,函数可以在函数声明之前调用,...
在JavaScript中实现继承可以有多种方法,下面说两种常见的。 一,call 继承,先看代码: 先定义一个“人”类 代码如下: //人类 Person=function(){ this.name=”草泥马”; this.eat=function(){ alert(“我要...