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

北京网站定制报价好的界面建筑网站

北京网站定制报价,好的界面建筑网站,网站建设工程师面试,wordpress 图站1. 什么是对象? 在 JavaScript 中,对象是一种包含属性和方法的数据结构。你可以把对象想象成一个存储键值对的容器。每个键(key)都有一个对应的值(value),这个值可以是数据或者函数。 let per…

1. 什么是对象?

在 JavaScript 中,对象是一种包含属性和方法的数据结构。你可以把对象想象成一个存储键值对的容器。每个键(key)都有一个对应的值(value),这个值可以是数据或者函数。

let person = {name: "Alice",age: 25,greet: function() {console.log("Hello, my name is " + this.name);}
};// 访问对象的属性和方法
console.log(person.name);  // 输出: Alice
console.log(person.age);   // 输出: 25
person.greet();            // 输出: Hello, my name is Alice

2. 什么是原型?

在 JavaScript 中,每个对象都有一个原型(prototype)。原型是另一个对象,所有的对象可以通过原型继承属性和方法。比如,JavaScript 中的所有对象默认继承自 Object.prototype,而 Object.prototype 本身也是一个对象。

示例:继承自 Object.prototype 的方法
let obj = {};
console.log(obj.toString());  // 输出: [object Object]

在这个例子中,obj 是一个空对象。虽然我们没有定义任何属性或方法,但它仍然能使用 toString() 方法,因为它继承自 Object.prototype,其中定义了 toString()

3. 原型链

当你访问对象的属性时,JavaScript 会首先在对象本身查找。如果没找到,它会去该对象的原型中寻找。这种逐层查找的机制被称为原型链

示例:通过原型链查找属性
let animal = {species: "Dog"
};let pet = Object.create(animal);  // pet 继承自 animal
pet.name = "Buddy";console.log(pet.name);    // 输出: Buddy (在 pet 对象本身找到)
console.log(pet.species); // 输出: Dog (在 pet 的原型 animal 中找到)

在这里,pet 继承自 animal,当访问 pet.species 时,JavaScript 没有在 pet 本身找到 species 属性,于是转而去它的原型 animal 中查找,成功找到。

4. 对象原型污染的例子

原型污染的代码示例:
let innocentObject = {};// 模拟用户输入的对象,其中有 __proto__ 属性
let userInput = {__proto__: {hacked: "Yes, I am hacked!"}
};// 合并用户输入到 innocentObject 中
Object.assign(innocentObject, userInput);console.log(innocentObject.hacked);  // 输出: undefined
console.log({}.hacked);              // 输出: "Yes, I am hacked!"
解释:
  1. 在代码中,userInput 包含 __proto__ 属性,这个属性指向一个包含 hacked 属性的对象。
  2. 使用 Object.assign() 方法将 userInput 合并到 innocentObject 中。
  3. 虽然 innocentObject 本身没有 hacked 属性,但是由于 __proto__ 被修改,JavaScript 的原型链被污染,Object.prototype 上被注入了一个 hacked 属性。
  4. 结果是:所有对象(包括空对象 {})都能访问到这个被注入的 hacked 属性。
http://www.yayakq.cn/news/791515/

相关文章:

  • 网站响应式图片切换代码爱客是什么牌子档次
  • 农村自建房设计网站南沙做网站
  • 淳安千岛湖建设集团网站常见的网站空间有哪些
  • 自己买服务器搭建网站广东网页设计
  • 时尚工作室网站源码吉林省建设信息网工程招投标
  • 北京做网站建设的公司有哪些wordpress 下载页面模板怎么用
  • 多国语言网站建设动漫制作专业需要了解哪些知识
  • 牛天下网站建设信阳网络推广公司
  • 网站建设怎么宣传wordpress 端口号
  • 产品网站开发计划表微信企业号可以做微网站吗
  • win8风格网站开发实例专注郑州网站建设
  • wordpress和网站区别网站怎么做qq授权登录
  • 常宁市建设局网站关键字
  • 广州做企业网站的公司wordpress linux版本号
  • 西安模板网站建站自己做网站建设
  • 装饰装潢设计做网站排名优化的公司
  • 网站推广常用方法包括网络品牌营销策划的概念
  • 什么网站可以兼职做设计计算机软件开发规范1988作废
  • 网站制作建设兴田德网站开发 去哪里找页面
  • 网站建设代理渠道建设部网站网站建设
  • 网站优化检测工具网站建设后的专人维护
  • 开关网站建设网站制作 商城
  • 动物自己做的网站像wordpress
  • 东莞网站关键词优化排名网站小图标怎么制作
  • 如何去建立和设计一个公司网站百度广告联盟app下载官网
  • 重庆企业网站建设报价网页制作免费模板
  • 稻壳网站建设开发区是什么意思
  • 长沙 公司网站学校网站设计实验报告
  • 建设厅执业资格注册中心网站wordpress自定义搜索页面
  • 网站主导航推广网站怎么建设和维护