js函数

js函数

es5中只要function
es6中新增了 箭头函数 与 对象方法

  1. 箭头函数是面向过程的函数
  2. function是面向过程和面向对象的函数可以相互切换
  3. function Fn() {}这种是面向对象的函数

函数1

<script>
    function f1() {
        console.log('f1 run')
    }
    //调用函数f1
    f1();
</script>

函数2

<script>
    function f2() {
    	return '222'
    }
    //调用函数f2,由于函数没有打印值,只有返回值所以不会打印
    f2();
    //打印函数的返回值
    console.log(f2());
    //将函数的返回值进行赋值,在进行打印
    let r2 = f2();
    console.log(r2)
</script>

函数3

<script>
    // es6中新增了 箭头函数 与 对象方法
    //这种是不直接传参的
    let f3=()=>{
        console.log('f3 run')
    };
    f3()
</script>

函数4

<script>
    // 箭头函数函数体只有返回值,没有多余代码,还可以简写
    let f4 = () => 12345;
    let r4 = f4();
    console.log(r4)
</script>
//当函数没有参数的时候可以这样写,用下划线进行代替,并不使用
<script>
    let f4 = _ => 12345;
    let r4 = f4();
    console.log(r4)
</script>

函数5

<script>
    
    // 箭头函数如果有参数,() 也可以省略
    a = 10;
    let f5 = n => n*10;
    let r5 = f5(a);
    console.log(r5);
</script>

js函数原型

  1. 给函数设置原型 Fn.prototype.变量 = 值,那么Fn new出来的对象都可以共用 原型变量
  2. 类有原型
  3. 函数没有原型
  4. prototype原生的
  5. 函数原型:给函数设置原型 Fn.prototype.变量 = 值,那么Fn new出来的对象都可以共用 原型变量
<script>
    function Fn() {}
    let f1=new Fn();
    let f2=new Fn();
    Fn.prototype.num=888;
    console.log(f1.num);
    console.log(f2.num);
    let f3=Fn();
    f3.num=666;
    console.log(f3.num);
</script>    

类比python

class People:
     pass

p1 = People()
p2 = People()

People.arg = 100  // 给类添加属性,所有对象公用
p1.arg
p2.arg

原文地址:https://www.cnblogs.com/SkyOceanchen/p/11859368.html