js函数和封装
$就是jquery对象,$()就是jQuery(),在里面可以传参数,作用就是获取元素
js对象与jQuery对象的区别:jQuery对象是一个数组,jQuery对象转为js对象:[0] 取第一个即可,js对象是dom对象,转为jquery对象:$(' ')
函数声明
function 方法名(){
//方法体
}
//调用函数myFunc,传入的参数是一个匿名函数,返回一个匿名函数
myFunc(function() {
return function(){};
});
- 函数表达式
var 变量名 = function [name] ([param1[, param2[, ..., paramN]]]){
//方法体
};
- 箭头函数
//没有方法名
//代码块有多条语句时,用大括号包裹
//返回值是对象时,用小括号包裹
//箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this
//没有 arguments
//不能通过 new 关键字调用
//没有原型
//没有 super
(参数) => {
//方法体,返回值
}
- 匿名函数
(function (){
//方法体
})() //这里表示立即执行
- 立即执行函数的不同写法:
详情可参考:https://blog.csdn.net/weixin_30297281/article/details/98843630
function() {}() // 错误写法
(function 方法名(){})();
!function (){}()
~function (){}()
(function (){})
+function(){}();
(function() {})();
(function() {}());
- 函数闭包
详情查看csdn:https://blog.csdn.net/mnilz/article/details/104221272
定义:当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的其它变量,如果返回的这个函数在外部被执行,就产生了闭包
特点:
函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制回收
- 对象增强
const username = 'goudan';
const age = 20;
const sex = '男';
const reqData = {
username: username,
age, // 当key和value的名称一致时,可省略value
sex
}
- 对象方法的定义
//方法名作为key,函数代码块作为value
const user = {
add: function(){
console.log(this); // 指向当前对象
},
update: () => {
console.log(this); // 箭头函数的写法,指向Windows对象
},
del(){
console.log(this); // ES6中简写方式,指向当前对象
}
}
//使用:对象.方法名
user.add()
- js封装
//对象方法的使用案例,可将对象方法单独封装到js,使用时引入
const $ = {
dom: (obj) => { // 获取dom节点
if(obj.indexOf('.') == 0) {
return document.getElementsByClassName(obj.substring(1))
}
if(obj.indexOf('#') == 0) { // 根据id获取dom元素
return document.getElementById(obj.substring(1))
}
return document.getElementsByTagName(obj) // 返回指定标签名的对象的列表
},
query: (str) => { // 获取选中的第一个指定元素
return document.querySelector(str)
},
queryAll: (str) => { // 获取选中的所有指定元素
return document.querySelectorAll(str)
},
siblings: function(elem) { // 获取所有兄弟节点
//parentNode返回指定节点的父节点,childNodes返回指定节点的所有子节点
return $.siblingAll(elem.parentNode.childNodes, elem)
},
siblingAll: function(o, elem) { // 获取所有子节点
var arr = []
for(let item of o) {
//nodeType返回指定节点的节点类型,元素节点返回1,属性节点返回2
if(item.nodeType === 1 && item !== elem) {
arr.push(item)
}
}
return arr;
},
}
// 对象.方式名
var oP = $.query('div.box p.current') // 获取到ele对象
var o = $.siblings(oP) // 获取所有兄弟节点
- jquery.ajax
$(function(){
//请求参数
var list = {};
//
$.ajax({
//是否异步,默认true为异步请求
async: false,
//请求方式
type : "POST",
//请求的媒体类型,发送
contentType: "application/json;charset=UTF-8",
//请求地址
url : "http://127.0.0.1/admin/list/",
//发送请求的数据,这里转为字符串格式,才能进行传输
data : JSON.stringify(list),
//返回的数据格式
dataType : json,
//请求成功
success : function(result) {
console.log(result);
},
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});
});
- async和await
// async放在函数前表示这是一个异步函数,该函数的执行不会阻塞后面代码的执行
async getMenuList(){
// await只能在async函数中使用,await表达式会暂停当前 async function的执行,先执行await
const {data: res} = await this.$http.get('menus');
console.log(res)
}
js函数和封装的更多相关文章
- JS —— 轮播图中的缓动函数的封装
轮播图的根本其实就是缓动函数的封装,如果说轮播图是一辆跑动的汽车,那么缓动函数就是它的发动机,今天本文章就带大家由简入繁,封装属于自己的缓动函数~~ 我们从需求的角度开始,首先给出一个简单需求: 1. ...
- react request.js 函数封装
1.request.js 函数封装 import { Toast } from 'antd-mobile'; import axios from 'axios'; import store from ...
- js函数表达式和函数声明的区别
我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...
- js 函数
函数:封装了某一块功能 四要素: 1.返回类型 2.函数名 3.参数列表4.函数体强类型语言 返回类型 函数名 首字母大写 参数列表string(字符串) Show (int a){ 函数体 }弱类型 ...
- JSF页面中使用js函数回调后台bean方法并获取返回值的方法
由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...
- JS类的封装及实现代码
js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. ...
- 【转】3篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:官方原生方法分析
作者: 牛A与牛C之间 时间: 2013-11-17 分类: 技术文章 | 暂无评论 | 编辑文章 主页 » 技术文章 » 第3篇:Xilium CefGlue 关于 CLR Object 与 JS ...
- 原生JS面向对象思想封装轮播图组件
原生JS面向对象思想封装轮播图组件 在前端页面开发过程中,页面中的轮播图特效很常见,因此我就想封装一个自己的原生JS的轮播图组件.有了这个需求就开始着手准备了,代码当然是以简洁为目标,轮播图的各个功能 ...
- js函数的各种写法与调用
以下是我见过的各种js函数的各种写法以及调用,虽然有些写法及其调用我不清楚其专业术语叫啥,但并不影响我写一个总结笔记. 我们刚开始接触js语音,经常看到的这种名叫“使用function关键字来定义函数 ...
随机推荐
- spring-2-AOP
AOP(面向切面编程) 面向切面编程, 即利用AOP可以对业务逻辑的各个部分进行隔离, 从而使得业务逻辑各个部分之间的耦合度降低, 提高程序的可重用性, 同时提高了开发的效率. 不通过修改源代码,通过 ...
- redis的过期删除策略
一.redis的三种过期策略 1.定时删除在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除优点:保证内存被尽快释放缺点:1)若过期key很多, ...
- PC免费的小说阅读器,可提取章节
最近自己做了个小说阅读器,就是下面这个东西啦,目前仅支持Window系统: 个人喜欢在电脑.平板上等大屏幕设备上阅读小说或电子书籍.原因其一是屏幕足够大,可以选择更舒服的字体大小:其二是觉得小屏幕看字 ...
- 1.4matlab矩阵的表示
1.4matlab矩阵的表示 矩阵的建立 利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵的顺序输入各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔. 利用已建立好的矩 ...
- Git常用命令和基础使用
Git 参考:廖雪峰的Git教程 Git 常用命令 git config --global user.name "name" #配置git使用用户 git config --glo ...
- 剑指 Offer 32 - II. 从上到下打印二叉树 II
剑指 Offer 32 - II. 从上到下打印二叉树 II 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,1 ...
- 软件或jar包版本的小知识---Beta版、Final版、Free版等
对于各种软件或jar包,其后面总有不同的"尾巴",如: 等,刚开始接触的肯定有些不知道.那么他们到底代表什么意思呢? 0.Release:发布版 1.Beta版:产品发布之前的测试 ...
- 如何让win10开机默认开启小键盘?
如何让win10开机默认开启小键盘? windows10默认是关闭小键盘的.每次输入开机密码的时候都需要按一下小键盘开启键(numlock),才能按数字键 一.运行注册表编辑器,修改InitialKe ...
- Dired Mode in Emacs
Start up Dired mode: C-x d; (List dirs: C-x C-d) Hide Dired mode window: q; Mark Mark (for group man ...
- 【原创】利用动态二进制加密实现新型一句话木马之PHP篇
概述 本系列文章重写了java..net.php三个版本的一句话木马,可以解析并执行客户端传递过来的加密二进制流,并实现了相应的客户端工具.从而一劳永逸的绕过WAF或者其他网络防火墙的检测. 本来是想 ...