关于js函数的写法 fun = function(){} fun:{}有什么不同

这几种方法每一个都有不一样的作用。

1.myfun:function(){} 这个是必须写在对象内部的,这是一个对象的方法,如

1
2
3
var  a = {
    myfun: function (){} 
}

写在外面会报错。

2.任何时候都不要这样写myfun = function(){},这样写就变成了全局对象window的一个属性,要记得加上var ,第四种方式是对的,如下:

1
var  myfun =  function (){}

这是一种声明函数的方式,左边是一个变量,右边是一个函数的表达式,意思就是把一个匿名的函数表达式复制给了变量myfun,只是声明了一个变量指向了一个函数对象。这个和第三种方法function myfun(){}声明的方法差别不大,但还是有差别的。

这就要涉及到javascript解析的部分了,简单来说,js在解析的过程中,会先把函数和变量提前解析。

function myfun(){}这种声明方法会把函数整个语句显示的提前到了脚本或者函数前(当前作用域),函数名和函数均会被提前(会在执行上下文代码前声明)。

而var myfun = function(){}这种声明方法,只是提前了一个变量,并没有提前函数体。

3.最后一种并不是声明的函数,只是在myfun函数上的原始对象上加了一个myfunPro方法,构造函数中用到的。给你个例子:

1
2
3
4
5
6
7
8
var  myfun =  function (){
            this .a =  "a" ;
        }
        myfun.prototype.myfunPro =  function  (){
            alert( "0" )
        }
        var  test =  new  myfun();
        console.log(test);

运行结果如下图:

这时候如果你在最底部加上一段代码,如下:

1
2
3
4
5
6
7
8
9
var  myfun =  function (){
            this .a =  "a" ;
        }
        myfun.prototype.myfunPro =  function  (){
            alert( "0" )
        }
        var  test =  new  myfun();
        console.log(test);
        test.myfunPro();

这时候就会弹出一个对话框 0了 ,你可以试试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值