JS函数的写法、原型链的补充理解

95 阅读1分钟

函数有三种写法:

1.声明式:写一个函数,运行脚本时,系统预编译时帮我们创建这个函数对象
    function  fn(){}
    
2.定义式:创建函数的语法糖,直接生成一个函数数据(对象)被标识引用
    var a=function(){}

3.标准的创建一个函数对象
    var f1=new Function("var a=20;
    console.log(a)");
    //()里面写代码块,如果里面标识代码块,那么打印的将是字符串
    f1();

原型链:

注意:系统内置构造函数的原型属性是不可以修改的,可以操作这个对象的属性(如果你尝试修改,那么系统也不会报错,但是也不会生效,它会跳过编译)

理解代码:

   <script type="text/javascript">
			Object.prototype.life=1;
			Function.prototype.life=2;
			function fn(){
				this.name="karen"
			}
			var f1=new fn();
			console.log(f1.name,f1.life);
			console.log(fn.name,fn.life)
		</script>

答案:

image.png

思维图:

image.png 思维方式:

构造函数的原型对象指向的是new Object
而一般函数的原型对象指向的是Function.prototype,然后再指向Object.prototype