js函数
es5中只要function
es6中新增了 箭头函数 与 对象方法
- 箭头函数是面向过程的函数
- function是面向过程和面向对象的函数可以相互切换
- 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函数原型
- 给函数设置原型 Fn.prototype.变量 = 值,那么Fn new出来的对象都可以共用 原型变量
- 类有原型
- 函数没有原型
- prototype原生的
- 函数原型:给函数设置原型 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