展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

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 (){
//方法体
})() //这里表示立即执行
function() {}() // 错误写法
(function 方法名(){})();
!function (){}()
~function (){}()
(function (){})
+function(){}();
(function() {})();
(function() {}());
定义:当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的其它变量,如果返回的这个函数在外部被执行,就产生了闭包
特点:
函数嵌套函数
函数内部可以引用外部的参数和变量
参数和变量不会被垃圾回收机制回收
  • 对象增强
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)
}

参考

posted @   DogLeftover  阅读(190)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示