前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于回调

关于回调

作者头像
爱学习的前端歌谣
发布于 2023-10-18 03:11:45
发布于 2023-10-18 03:11:45
45900
代码可运行
举报
文章被收录于专栏:前端小歌谣前端小歌谣
运行总次数:0
代码可运行

前言

我是歌谣 最好的种树是十年前 其次是现在 今天继续给大家带来的是闭包的讲解

环境配置

npm init -y

yarn add vite -D

修改page.json配置端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "demo1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "vite --port 3002"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "vite": "^4.4.9"
  }
}

基本案例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function test(callback){
   var a=1
   callback(a)
}


test(function(a){
    console.log(a)
})

运行结果

回调案例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function test(title,callback,callback2){
    var _title=`Title:${title}`
    var _zhtitle=`标题:${title}`
    callback(_title)
    callback2(_zhtitle)
 }
 test("我是 歌谣",function(title){
     console.log(title)
 },function(title){
    console.log(title)
})

运行结果

计算

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function calculate(a, b, type,callback) {
    let res = 0;
    let sign = '+';
    switch (type) {
        case 'PLUS':
            res = a + b;
            sign = '+'
            break
        case 'MINUS':
            res = a - b;
            sign = '-'
            break
        case 'MUL':
            res = a * b;
            sign = '*'
            break
        case 'DIV':
            res = a / b;
            sign = '/'
            break
        default:
            res = a + b;
            sign = '+'
            break
    }
    callback&&callback(a,b,sign,res)
    return {
        a, b, sign, res
    }
}
// const {a,b,sign,res}=calculate(1,2,'DIV')
// console.log(`${a}${b}${sign}${res}`)
calculate(1,2,'DIV',(a,b,sign,res)=>{
    console.log(`${a}${b}${sign}${res}`)
})

运行结果

验证

index.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>回调</title>
</head>
<body>
    <input type="test" id="username">
    <input type="password" id="password">
    <button id="loginBtn">登录</button>
    <script type="module" src="./index3.js"></script>
</body>
</html>

index3.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { checkUserInfo, checkCommet } from "./validate"
const OUsername = document.querySelector("#username")
const OPassword = document.querySelector("#password")
const OLoginbtn = document.querySelector("#loginBtn")


function validate(field) {
    debugger
    return function (data) {
        switch (field) {
            case 'USER_INFO':
                return checkUserInfo(data)
            case 'USER_COMMET':
                return checkCommet(data)
            default:
                throw new Error("验证失败")


        }
    }
}
function loginAction(userInfo, validate) {
    const { errCode, errMsg, value } = validate(userInfo)
    console.log(errCode, errMsg, value)
    if(errCode==1){
        throw new Error(errMsg)
    }
    console.log(value)
}


OLoginbtn.addEventListener('click', () => {
    const username = OUsername.value
    const password = OPassword.value
    console.log(username,password,"data is")
    loginAction({ username, password }, validate('USER_INFO'))
}, false)

validate.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export function checkUserInfo({username,password}){
   
    if(username.trim().length<6){
        return {
            errCode:1,
            errMsg:"username不能小于6",
            value:username
        }
    }
    if(password.trim().length<6){
        return {
            errCode:1,
            errMsg:"password不能小于6",
            value:password
        }
    }
    return {
        errCode:0,
        errMsg:"ok",
        value:{
            username,password
        }
    }
}


export function checkCommet(data){


}

运行结果

阻塞 后端代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const express=require("express")
const app=express()
app.all('*',(req,res,next)=>{
    res.header('Access-Control-Allow-Origin',"*")
    res.header('Access-Control-Allow-Methods',"POST,GET")
    next();
})


app.get('/getdata',(req,res)=>{
    res.json({
        name:"geyao",
        age:18
    })
})


app.listen(3003,()=>{
    console.log("ok")
})

启动

前端

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const data=$.ajax("http://localhost:3003/getdata",{
    async:false,
    // success(data){
    //     console.log(data)
    // }
}).responseJSON
console.log(data)
console.log(123)

运行结果

异步问题同步化

后端

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const express=require("express")
const app=express()
app.all('*',(req,res,next)=>{
    res.header('Access-Control-Allow-Origin',"*")
    res.header('Access-Control-Allow-Methods',"POST,GET")
    next();
})
app.get('/getdata',(req,res)=>{
    res.json({
        name:"geyao",
        age:18
    })
})


app.listen(3003,()=>{
    console.log("ok")
})

前端

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getData(){
    return new Promise((resolve,reject)=>{
        $.ajax("http://localhost:3003/getdata",{
            success(data){
                resolve(data)
            }
        })
    })
}
// getData().then(data=>{
//     console.log(data)
//     console.log(123)
// })
async function test(){
    const data=await getData();
    console.log(data)
    console.log(123)
}
test()
console.log(234)

运行结果

watcher实现

index.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const Delfln = (() => {
    const watcher=[


    ]
    function useReactive(state) {
       return new Proxy(state,{
        get(target,key){
            return Reflect.get[target,key]
        },
        set(target,key,value){
            update(watcher[key].collection,value)
            watcher[key].cb(target[key],value)
            return Reflect.set(target,key,value)
        }
       })
    }
    function useWatcher(collection,key,callback) {
        !watcher[key]&&(watcher[key]={})
        !watcher[key].collection&&(watcher[key].collection=[])
        watcher[key].cb=callback
        watcher[key].collection=[...watcher[key].collection,...collection]
        console.log(watcher,"watcher is")
    }
    function update(collection,value){
        collection.forEach(el=>{
            el.innerText=value
        })
    }
    return {
        useReactive,
        useWatcher
    }
})()


const { useReactive, useWatcher } = Delfln
const state = useReactive({
    title: "This is Title",
    content: "This is Content"
})


useWatcher([
    document.querySelector("h1"),
    document.querySelector("h2")
], 'title', (prev, cur) => {
    console.log("watch title"+prev, cur)
})


useWatcher([
    document.querySelector("p"),
    document.querySelector("span")
], 'content', (prev, cur) => {
    console.log("watch content"+prev, cur)
})
function render(){
    document.querySelector('h1').innerText=state.title,
    document.querySelector('h2').innerText=state.title
    document.querySelector('p').innerText=state.content
    document.querySelector('span').innerText=state.content
}


setTimeout(()=>{
  state.title="这是标题",
  state.content="这是内容"
},1000)

index.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>回调</title>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
    <!-- <input type="test" id="username">
    <input type="password" id="password">
    <button id="loginBtn">登录</button> -->
    <h1>


    </h1>
    <h2></h2>
    <p></p>
    <span></span>
    <script type="module" src="./index6.js"></script>
</body>
</html>

运行结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端小歌谣 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
金融科技&大数据产品推荐:量子金服投研管理平台
金融科技&大数据产品推荐:量子金服投研管理平台
数据猿
2018/04/24
1.5K0
金融科技&大数据产品推荐:量子金服投研管理平台
白鹭女掌门张晨樱:打造反脆弱的量化多策略盈利武器
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,连续2年被腾讯云+社区评选为“年度最佳作者”。 前言 伴随股票市场的风格切换以及商品市场的极端波动,量化产品会在一定程度出现部分回撤,这也再次提醒我们多资产、多策略配置的重要性。然而,对于管理人来说,想要真正做好多策略并非易事,也远不止将几个策略组合在一起这么简单,在策略研发、人才、IT方面都对管理人提出了更高的要求。
量化投资与机器学习微信公众号
2022/03/03
1.2K0
百亿私募,星阔投资 | 量化多岗位招聘
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 公司介绍 星阔投资(Starvast Quant)是一家专注于国内股票量化投资的资产管理公司,(基金业协会登记编号:P1071681),总部设于北京。目前公司资产管理规模100亿元以上,业绩排名行业前列。公司坚持用数量化、
量化投资与机器学习微信公众号
2022/03/21
5980
黑翼的『Alpha因子』:稳定收益源自均衡配置
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 前言 量化投资总是蒙着一层神秘的面纱,似乎可以无时无刻打败市场。但金融市场本身是一个充满很多不确定性的复杂系统,量化投资就是为了在这种高度不确定性中努力提高投资中科学的成分,这样才能减少投资结果的随机性,增加投资收益的
量化投资与机器学习微信公众号
2022/03/04
6180
刀尖上的舞蹈?股票Alpha模型与机器学习
在开发股票投资模型这项工作中,很少有凭空搭建的楼阁。尽管可以使用机器学习类的工具增强模型性能,但是大部分模型的基础结构,依然基于传统的资产定价模型和因子分析演化而来。
量化投资与机器学习微信公众号
2020/02/20
1.9K0
刀尖上的舞蹈?股票Alpha模型与机器学习
关于科技创新下的量化投资,这些大佬都讲了什么?
关于科技创新下的量化投资,这些大佬都讲了什么?
数据猿
2018/04/19
6650
关于科技创新下的量化投资,这些大佬都讲了什么?
A股市场机器学习多因子模型实证
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 量化投资与机器学习公众号 独家解读 量化投资与机器学公众号  QIML Insight——深度研读系列 是公众号全力打造的一档深度、前沿、高水准栏目。 公众号遴选了各大期刊前沿论文,按照理解和提炼的方式为读者呈
量化投资与机器学习微信公众号
2022/09/08
1.2K0
A股市场机器学习多因子模型实证
【金猿案例展】某基金管理公司:智能量化投资平台建设
本案例由九章云极投递并参与评选,数据猿独家全网首发;更多关于【金猿榜/奖·2019征集评选】的相关信息,请点击这里了解详情丨征案例、征文章、征产品=评企业、评人物、评产品。
数据猿
2019/12/26
8120
啥是佩琪?恕我直言,搞量化这样配齐!
近期,有很多读者从知乎、微信后台留言,问我们从事量化行业,应该掌握哪些技能,有哪些要求,我们综合公众号这几年的推文和行业调研,给大家做一个简单回答。
量化投资与机器学习微信公众号
2019/02/26
9820
想当Quant?呵呵~
最近,很多人问我们关于量化求职这件事。公众号觉得有必要把之前的一些总结再给大家看看。QuantNet如期公布了2020全美最佳金融工程(MFE)专业的排名。大家可曾知道,Quantnet的MFE专业排名堪称:
量化投资与机器学习微信公众号
2020/09/26
2.3K0
思晔投资 | 量化多岗位招聘(校招+实习)
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 公司介绍 上海思晔投资管理有限公司(简称“思晔投资”)成立于2013年5月,总部位于中国上海。作为国内多策略私募证券投资基金的先行者,思晔投资自成立以来坚持投研驱动公司发展的道路,专注于中国市场股票、债券、商品以及前沿衍
量化投资与机器学习微信公众号
2022/03/10
7680
【技术分享】机器学习在量化交易方向的应用—基于神经网络的多因子选股策略
量化交易策略无非三点:择时、选股、仓控。择时为短期套利交易策略,选股为中长期交易策略,目标是在中长期跑赢指数、获取市场超额收益率alpha。多因子选股的关键是找到寻找因子与股票收益率之间的相关性,即对收益率预测能力强的因子。一般多采用如下步骤:
腾讯云TI平台
2019/11/19
7.2K0
有人说:机器学习应用量化投资没啥用,给你看看有用的!
想必很多人还不知道Numerai吧,有志于从事量化方向的同学可以重点关注下。Numerai 是一家初创公司,以举办专业数据锦标赛(类似kaggle)为其对冲基金寻找最佳交易策略而闻名。同时,它能将世界各地数据学家的股市预测模型“众包”出去。同时,Numerai创建了自己的加密货币,名为Numeraire(NMR)。近日,Numerai通过ICO完成了300万美元融资,Placeholder、Union Square等公司参投。
量化投资与机器学习微信公众号
2020/09/26
1.7K0
【全网首发】机器学习该如何应用到量化投资系列(三)
有一些单纯搞计算机、数学或者物理的人会问,究竟怎么样应用 ML 在量化投资。他们能做些什么自己擅长的工作。虽然在很多平台或者自媒体有谈及有关的问题,但是不够全面和完整。从今日起,量化投资与机器学习公众号将推出一个系列【机器学习该如何应用到】。今日的推文,是编辑部人员对国内的所有券商金工团队做的机器学习的研究报告做了一个系统性的整理。希望大家有所收获。 获取本推文所有研报请看文章末端 系列文章(点击即可查看) 机器学习该如何应用到量化投资系列(一) 机器学习该如何应用到量化投资系列(二) 2010年08月1
量化投资与机器学习微信公众号
2018/01/29
2.5K0
编程再好也只能当码农?那你肯定不知道AI量化程序员
量化,一个横跨多个学科领域的工作。已经在不同场合,听了无数次的三座大山:较好的数学功底、编程技能、金融知识。
abs_zero
2019/05/05
1.3K0
编程再好也只能当码农?那你肯定不知道AI量化程序员
【重磅发布】2018中国量化投资年度盘点
公众号尽量从多个维度去进行编写,同时也参考了各大数据平台,确保数据的准确性。我们希望让国内量化爱好者尽可能多的去了解这个行业的发展现状。公众号创办3年来,也一直致力于为国内量化事业贡献一份自己的力量。
量化投资与机器学习微信公众号
2019/02/26
1.3K0
成为一个AI量化程序员首先要了解的四点
量化,一个横跨多个学科领域的工作。已经在不同场合,听了无数次的三座大山:较好的数学功底、编程技能、金融知识。
量化小白
2019/05/21
3.1K0
成为一个AI量化程序员首先要了解的四点
QIML Insight | 基于两阶段机器学习模型的因子择时方法
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾讯云+社区评选为“年度最佳作者”。 量化投资与机器学习公众号 独家解读 量化投资与机器学公众号 QIML Insight——深度研读系列 是公众号全力打造的一档深度、前沿、高水准栏目。
量化投资与机器学习微信公众号
2024/01/11
6670
QIML Insight | 基于两阶段机器学习模型的因子择时方法
白鹭资管 | 量化多岗位招聘(社招+实习)
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 公司介绍 浙江白鹭资产管理股份有限公司(简称:白鹭资管)是一家专注于二级市场、依靠数学和计算机科学进行量化投资与交易的对冲基金。我们致力于打造兼具全球视野和本土智慧的一流投资团队,成为全球顶尖的量化多策略对冲基金。公司于
量化投资与机器学习微信公众号
2022/03/25
1.1K0
近期因子研究论文推荐
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 Combining Factors Christoph Reschenhofer (Vienna University of Economics and Business) / July 2022 学术文献主要通过组合收益
量化投资与机器学习微信公众号
2022/08/26
6570
近期因子研究论文推荐
推荐阅读
相关推荐
金融科技&大数据产品推荐:量子金服投研管理平台
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档