js中的函数有几种用法

js中的函数有几种用法

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>

<body>
  <script type="text/javascript">
    /*
    function foo() {}
    js中的函数有几种用法
    1、普通函数 foo()
    2、构造函数 new foo()
    3、对象  foo.abc = 123

    所有的全局变量和全局函数都是window的属性
    js的执行流程:先预解析;再从上到下执行

    普通函数中的this是window
  */
    function Byte() {
      // Byte函数被调用时,如下的方法会覆盖全局函数 
      getName = function () {
        console.log(1);
      }
      return this;
    }
    Byte.getName = function () {
      console.log(2);
    }
    Byte.prototype.getName = function () {
      console.log(3);
    }
    var getName = function () {
      console.log(4);
    }

    function getName() {
      console.log(5);
    }

    // 此时Byte是对象,如下是在访问对象的属性,他的值是一个函数
    Byte.getName(); //(28行代码)  —— 2
    // 调用全局函数
    getName(); // (34行代码)   —— 4
    // // Byte()返回结果是window,并且调用了函数内赋值操作,全局函数会被覆盖
    Byte().getName(); // (23行代码)   —— 1
    // // 此时调用的函数覆盖后的全局函数
    getName(); // (23行代码)   —— 4--> 1
    // // new的是getName函数,不是Byte
    new Byte.getName(); // 执行的是28行的构造函数  —— 2
    // // new的是Byte构造函数,此时访问的getName应该是Byte的原型方法(31行)
    new Byte().getName(); // (31行代码)  —— 3
  </script>
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值