函数的三种角色

函数在整个JavaScript中是最复杂也是最重要的知识:
1.一个函数存在了多面性:

它本身就是一个普通的函数,执行的时候形成私有的作用域(闭包),形参赋值,预解释,代码执行,执行完成后栈内存销毁/不销毁

2.它本身可以作为一个类:它有自己的实例,也有一个叫做prototype属性是自己的原型,它的实例都可以指向自己的原型

3.普通对象:和var obj ={}一样就是一个普通的对象,它作为对象可以有一些自己的私有的属性,也可以通过_proto_找到

Function.prototype

//这三者之间是没有必然关系的

function Fn(){
           var num =500;
           this.x = 100;
       }
        Fn.prototype.getX =function(){
            console.log(this.x);
        }
        Fn.aaa = 1000;
        var f = new Fn;
       f.num //->undefined
       f.aaa //->undefined
       var res =Fn();// _>FN中的this是window
        res = undefined
        Fn.aaa
时间: 2024-10-11 00:11:29

函数的三种角色的相关文章

【设计模式+原型理解】第四章:函数的三种角色+原型链终结版

一.函数的三种角色 1)作为普通函数 2)作为对象 3)作为类 ps:可以同时存在,之间没有任何冲突 二.怎么理解函数的三种角色 这三种角色可以同时存在,没有任何冲突,举个例子 // 这三种角色是没有冲突的,看下面的例子 function Fn1() { // 这时候,Fn就是一个普通函数,形参赋值,预解释,代码执行 var num = 500 this.x = 100; } Fn.prototype.getX = function () { console.log(this.x); }; Fn

js学习总结----函数的三种角色

注意:Function.prototype是函数数据类型的值,但是相关操作和之前的一模一样->Empty/anonymous 函数本身也会有一些自己的属性:   length :形参的个数   name:"Fn" 函数名   prototype 类的原型,在原型上定义的方法都是当前Fn这个类实例的公有方法   __proto__ 把函数当做一个普通的对象,指向Function这个类的原型 函数在整个JS中是最复杂的也是最重要的知识: 1.一个函数存在了多面性: "普通函

epoll函数及三种I/O复用函数的对比

epoll函数 #include <sys/epoll.h>int epoll_create(int size)int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)int epoll_wait(int epfd,struct epoll_event * events,int maxevents,int timeout) Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数

js中回调函数的三种写法

回调函数的三种写法: 1.通过指针来调用 2.通过匿名函数来调用 3.定义与执行同时进行 // 通过指针来调用 function math(num1,num2,callback){ return callback(num1 , num2); } function aa(num1,num2){ return num1 + num2; } function bb(num1,num2){ return num1 - num2; } console.log( math(2,1,aa) ); // 3 c

Js函数的三种创建、四种调用

1 // 函数的三种创建方法 2 function one(){ // 函数声明,不属于任何对象,始终默认为全局对象 3 console.log("第一个函数") 4 //默认有一个return this,返回函数中的内容 5 } 6 one(); //必须调用:可以在函数声明前调用(预处理变异机制) 7 8 var fn=function(){ //函数表达式 9 console.log("第二个函数") 10 } 11 fn(); //必须先声明再调用 12 1

第七章、函数基础之定义函数的三种方式03

目录 第七章.函数基础之定义函数的三种方式03 一.无参函数 二.有参函数 三.空函数 第七章.函数基础之定义函数的三种方式03 一.无参函数 定义函数时参数是函数体接收外部传值的一种媒介 在函数阶段括号没有参数就是无参函数.调用时不需要传入实参 如果函数体代码逻辑不需要依赖外部传入值,必须定义成无参函数 def func(): print('hello nick') func() # hello nick 二.有参函数 在函数阶段括号有参数就是有参函数.调用时需要传入实参 如果函数体代码逻辑需

创建函数的三种方式

一.创建函数的三种方式: 二.自调用函数(立即执行函数) 作用:立即开启一个新的作用域,避免污染全局命名空间 原文地址:https://www.cnblogs.com/qqinhappyhappy/p/11603480.html

文件内光标的移动 函数基础 定义函数的三种形式

# with open(r'a.txt', 'r', encoding='utf-8')as f:# data1=f.read()# print('>1>:',data1)# print(f.tell()) # 44 只有一种情况下,光标的意思是字符# data2=f.read()# print('>2>:',data2) # 第一次有结果,第二次没有,第一次读取数据后光标已经移到了文件尾 # 只有一种情况下,光标以字符为单位:文件以rt方式打开,read()# with open

【JS】Js中函数的三种调用方式

在同一个页面中,函数名必须是唯一的,并且区分大小写.Js中可以通过下面三种方式调用函数: 1. 函数的简单调用 2. 在事件的响应中调用函数 3. 通过连接调用函数 具体是怎么操作的呢,下面一一讲解: 函数的简单调用:函数的定义语句通畅被放在HTML文件的<head>内,而函数的调用语句通常被放在<body>中.如果函数定义之前调用函数,执行将会出错. 语法如下: <head> <script type="text/javascript">