当前位置: 首页 > news >正文

网站不备案可以做微信小程序么设计发明的网站

网站不备案可以做微信小程序么,设计发明的网站,上海市政建设有限公司网站,最酷炫的wordpress the7一、引用类型皆为对象 原型和原型链都是来源于对象而服务于对象的概念#xff0c;所以我们要先明确一点#xff1a; JavaScript中一切引用类型都是对象#xff0c;对象就是属性的集合。 Array类型、Function类型、Object类型、Date类型、RegExp类型等都是引用类型。 也就…一、引用类型皆为对象 原型和原型链都是来源于对象而服务于对象的概念所以我们要先明确一点 JavaScript中一切引用类型都是对象对象就是属性的集合。 Array类型、Function类型、Object类型、Date类型、RegExp类型等都是引用类型。 也就是说 数组是对象、函数是对象、正则是对象、对象还是对象。 二、原型 写在前面 任何对象都有原型。 函数也是对象所以函数也有原型。 1.什么是原型什么是原型链 参考 滑动验证页面 构造函数的原型对象和对象原型的关系 对象都会有一个属性__proto指向构造函数的 prototype 原型对象之所以我们对象可以使用构造函数 prototype原型对象的属性和方法就是因为对象有proto原型的存在 用比喻的关系 把构造函数比喻成父亲 构造函数的属性也就是原型 同时也是一个对象 也就是简称为构造函数的原型对象prototype)是构造函数的大儿子 构造函数实例出来的对象都会有一个__proto__)属性也就是实例对象的原型 这里简称为构造函数的对象原型 为构造函数的二儿子 实例对象的原型指向构造函数的对象原型 也就是说 function Son(){}; var son new Son(); console.log(Son.prototype)//Son {} console.log(son.__proto__)//Son {} console.log(Son.prototypeson.__proto__)//true Son.prototypeson.__proto__ 2.原型的继承 继承是面向对象编程的另一个特征通过继承进一步提升代码封装的程度JavaScript 中大多是借助原型对象实现继承的特性。 eg const person {eyes: 2,head: 1 }function Woman() { }Woman.prototype person const red new Woman() console.log(red.eyes)//2 woman虽然没有属性 但是它的原型对象设置为person所以 就可以继承person的属性 3.原型的作用 实现继承原型链是JavaScript中实现对象继承的主要机制。当一个对象试图访问一个属性时如果它自身没有这个属性JavaScript会在它的原型链上查找这个属性直到找到这个属性或者到达链的尽头null。通过这种方式原型允许对象继承其他对象的属性和方法。     共享属性和方法通过原型我们可以定义对象的共享属性和方法。这意味着所有对象实例都可以访问和修改这些属性和方法。这在创建大量具有相同属性和方法的对象时非常有用因为它可以避免在每个对象实例中重复定义这些属性和方法。     动态修改和扩展由于原型是一个对象我们可以在运行时动态地修改和扩展它。这允许我们在不修改原始构造函数的情况下为所有对象实例添加新的属性和方法。这种灵活性使得原型成为JavaScript中一个非常强大的工具。     代码重用和模块化通过创建具有特定原型的对象我们可以实现代码的重用和模块化。这有助于降低代码的复杂性提高代码的可读性和可维护性。 二、原型链 理解原型链 原型链是一种实现继承的机制。在上面的原型链图可以看出通过把一个对象的原型指向另一个对象可以让这个对象访问另一个对象的属性最终形成了一个链条一样的结构。在原型链中查找属性或方法时JavaScript 会从当前对象开始沿着原型链即 __proto__ 链向上查找直到找到相应的属性或方法或直到到达 Object.prototype 的原型即 null。如果找不到则返回 undefined。 参考 JS原型与原型链附带图解与代码_js原型和原型链大全-CSDN博客 三、原型链污染 可以发现修改了一个对象的原型属性之后会影响到另外一个具有相同原型的对象 哪些情况下原型链会被污染? 思考一下哪些情况下我们可以设置__proto__的值呢?其实找找能够控制数组(对象)的“键名”的操作即可:对象merge $.merge() 函数用于合并两个数组内容到第一个数组 对象clone(其实内核就是将待操作的对象merge到一个空对象中)以对象merge为例一个简单的 function merge(target,source){for (let key in source){if (key in source key in target){merge(target[key], source[key])}else {target[key] source[key]} } }let o1 {} let o2 {a: 1, __proto__: {b: 2}} merge(o1,o2) console.log(o1.a, o1.b)//1 2 o3 {} console.log(o3.b)//undefined 这是因为我们用JavaScript创建o2的过程(let o2{a:1,_proto:{b:2})中__proto__已经代表o2的原型了此时遍历o2的所有键名你拿到的是[a,b]_proto_并不是一个key自然也不会修改Object的原型 我们修改代码如下 function merge(target,source){for (let key in source){if (key in source key in target){merge(target[key], source[key])}else {target[key] source[key]} } }let o1 {} let o2 JSON.parse({a: 1, __proto__: {b: 2}}) merge(o1,o2) console.log(o1.a, o1.b)//1 2 o3 {} console.log(o3.b)//2 我们设置o2的值为json键值对 这样就成功污染了原型链 例题 ctfshow web——338 直接给了源码 查找关键字找到了login.js router.post(/, require(body-parser).json(), function(req, res, next) {// 设置一个根路径(/)的POST路由并使用 body-parser 的 JSON 解析中间件来解析请求体中的 JSON 数据。res.type(html);// 设置响应的内容类型为 html。var flag flag_here;// 定义一个变量 flag值为 flag_here。var secert {};// 初始化一个空对象 secert。var sess req.session;// 将请求中的 session 对象赋值给变量 sess。let user {};// 声明一个变量 user初始化为一个空对象。utils.copy(user, req.body);// 使用工具函数 utils.copy 将请求体中的属性复制到 user 对象中。if (secert.ctfshow 36dboy) {// 检查 secert 对象的 ctfshow 属性是否等于 36dboy。res.end(flag);// 如果条件为真发送 flag 作为响应并结束响应。} else {return res.json({ ret_code: 2, ret_msg: 登录失败 JSON.stringify(user) });// 如果条件为假发送一个包含失败消息的 JSON 响应其中包括 user 对象并结束响应。} });关键在copy 和merge类似 {username:a,password:a,__proto__:{ctfshow:36dboy}} 因为原型污染secret对象直接继承了Object.prototype所以就导致了secert.ctfshow36dboy
http://www.hkea.cn/news/14395460/

相关文章:

  • 行业前10的网站建设公司中国建设银行威海分行网站
  • cnzz网站建设教学包头建设网站
  • 自己建的网站如何做海外推广茶道网站开发背景
  • 网站建设如何选择服务器公司加强网站建设
  • 聚美优品网站设计门户网站建设和运行保证的磋商文件
  • 太原网站建设列表网四川网站开发公司
  • 个人网站建站教程新闻头条最新消息
  • 怎么在试客网站做佣金单tp框架做商城网站怎么用缓存
  • 网站建设设计说明书微信朋友圈推广文案
  • 关于电子商务的网站推广方案最近文章 wordpress
  • 江苏省住房和建设部网站做视频网站需要什么条件
  • 旅游网站开发与建设论文编辑wordpress模板
  • 网站和app区别与联系教育类网站前置审批
  • 微网站 功能长春网站优化公司
  • 招聘网站建设工作总结深圳网站建设费用多少
  • 织梦网站首页怎么修改网站开发怎么写
  • 网站推广怎么写环保厅网站建设的必要性
  • 旅游业网站建设微信推广联盟
  • 国外简约网站如何建设网站步骤
  • 凡科建站官网怎么样建设银行内部网站源码
  • 云南建设网站wordpress上传权限
  • 推广一个网站需要什么wordpress主题lightsns
  • 大气宽屏的网站wordpress首页非常慢
  • 站长工具查询网站优秀设计工作室网站
  • 怎么查网站的域名备案网络营销推广方法是什么和什么的合理利用
  • 做有弹幕视频网站网站优化方式
  • 专业个人网站青岛一点两区救治医院
  • 怎么运行网站全国招商加盟网免费
  • 南昌有哪些做网站的公司四川省住房城乡建设厅网站首页
  • 做平台网站邢台网站改版开发