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

网奇e游通旅游网站上海网站建设哪家做得好

网奇e游通旅游网站,上海网站建设哪家做得好,高端vi设计机构,wordpress 免签约主题转载自 js object 常用方法总结 Object.assign(target,source1,source2,...) 该方法主要用于对象的合并#xff0c;将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性#xff0c;不拷贝继承的属性。 Object.assign方法实行的是浅拷贝将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性不拷贝继承的属性。 Object.assign方法实行的是浅拷贝而不是深拷贝。也就是说如果源对象某个属性的值是对象那么目标对象拷贝得到的是这个对象的引用。同名属性会替换。 Object.assign只能进行值的复制如果要复制的值是一个取值函数那么将求值后再复制。 Object.assign可以用来处理数组但是会把数组视为对象。 const target  {x : 0,y : 1 };const source  {x : 1,z : 2 ,fn : {number : 1} };Object.assign(target, source);   // target  {x : 1, y : 1, z : 2, fn : {number : 1}}    // 同名属性会被覆盖 // source  {x : 1, z : 2, fn : {number : 1}} target.fn.number  2;                                  // 拷贝为对象引用 // source  {x : 1, z : 2, fn : {number : 2}}function Person(){this.name  1 }; Person.prototype.country  china; let student  new Person(); student.age  29 ; const young  {insterst : sport}; Object.assign(young,student); // young {instest : sport , age : 29}               // 只能拷贝自身的属性不能拷贝prototypeObject.assign([1, 2, 3], [4, 5])                      // 把数组当作对象来处理 // [4, 5, 3] Object.create(prototype[,propertiesObject]) 使用指定的原型对象及其属性去创建一个新的对象 var parent  {x : 1,y : 1 }var child  Object.create(parent,{z : {                           // z会成为创建对象的属性writable:true,configurable:true,value: newAdd} }); console.log(child) Object.defineProperties(obj,props) 直接在一个对象上定义新的属性或修改现有属性并返回该对象。 var obj  {}; Object.defineProperties(obj,  {  property1: {    value: true,  writable: true },  property2: {   value: Hello,writable: false  }  // etc. etc. }); console.log(obj)   // {property1: true, property2: Hello} Object.defineProperty(obj,prop,descriptor)  在一个对象上定义一个新属性或者修改一个对象的现有属性 并返回这个对象。 Object.defineProperty(Object, is,  {  value: function(x, y) {    if (x  y) {      // 针对0 不等于 -0的情况       return x ! 0 || 1 / x  1 / y;   }   // 针对NaN的情况    return x ! x  y ! y;  },  configurable: true,  enumerable: false,  writable: true  }); // 注意不能同时设置(writablevalue) 和 getset方法否则浏览器会报错   //Invalid property descriptor. Cannot both specify accessors and a value or writable attribute Object.keys(obj) 返回一个由一个给定对象的自身可枚举属性组成的数组数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性。 let arr  [a, b, c]; console.log(Object.keys(arr));// [0, 1, 2]/* Object 对象 */ let obj  { foo: bar, baz: 42 }, keys  Object.keys(obj); console.log(keys);// [foo,baz]  Object.values() 方法返回一个给定对象自己的所有可枚举属性值的数组值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。 Object.values会过滤属性名为 Symbol 值的属性。 var an_obj  { 100: a, 2: b, 7: c }; console.log(Object.values(an_obj)); // [b, c, a] var obj  { 0: a, 1: b, 2: c }; console.log(Object.values(obj)); // [a, b, c] Object.entries() 返回一个给定对象自身可枚举属性的键值对数组其排列与使用 for...in 循环遍历该对象时返回的顺序一致区别在于 for-in 循环也枚举原型链中的属性。 const obj  { foo: bar, baz: 42 }; console.log(Object.entries(obj)); // [ [foo, bar], [baz, 42] ]const simuArray  { 0: a, 1: b, 2: c }; console.log(Object.entries(simuArray)); // [ [0, a], [1, b], [2, c] ] hasOwnProperty()    判断对象自身属性中是否具有指定的属性。 obj.hasOwnProperty(name) Object.getOwnPropertyDescriptor(obj,prop) 返回指定对象上一个自有属性对应的属性描述符。自有属性指的是直接赋予该对象的属性不需要从原型链上进行查找的属性. 如果指定的属性存在于对象上则返回其属性描述符对象property descriptor否则返回 undefined。 var arr  [name,age] ; arr.forEach(val  console.log(Object.getOwnPropertyDescriptor(obj,val))) // {value: js, writable: true, enumerable: true, configurable: true} // undefined Object.getOwnPropertyDescriptors(obj) 获取一个对象的所有自身属性的描述符。 var obj {name : js,age : 20 } console.log(Object.getOwnPropertyDescriptors(obj)) const source {set foo(value) {console.log(value);} };const target2 {}; Object.defineProperties(target2, Object.getOwnPropertyDescriptors(source)); Object.getOwnPropertyDescriptor(target2, foo)const obj Object.create(some_obj,Object.getOwnPropertyDescriptors({foo: 123,}) ); Object.getOwnPropertyNames() 返回一个由指定对象的所有自身属性的属性名包括不可枚举属性但不包括Symbol值作为名称的属性组成的数组。 var obj { 0: a, 1: b, 2: c};Object.getOwnPropertyNames(obj).forEach(function(val) {console.log(val); });var obj {x : 1,y : 2 }Object.defineProperty(obj,z,{enumerable : false }) console.log(Object.getOwnPropertyNames(obj)) // [x, y, z] 包含不可枚举属性 。 console.log(Object.keys(obj)) // [x, y] 只包含可枚举属性 。 Object.getOwnPropertySymbols() 返回一个给定对象自身的所有 Symbol 属性的数组。 Object.getPrototypeOf() 返回指定对象的原型内部[[Prototype]]属性的值即__proto__而非对象的prototype。 isPrototypeOf() 判断一个对象是否存在于另一个对象的原型链上。 Object.setPrototypeOf(obj,prototype) 设置对象的原型对象 Object.is() 判断两个值是否相同。 如果下列任何一项成立则两个值相同 两个值都是 undefined两个值都是 null两个值都是 true 或者都是 false两个值是由相同个数的字符按照相同的顺序组成的字符串两个值指向同一个对象两个值都是数字并且 都是正零 0都是负零 -0都是 NaN都是除零和 NaN 外的其它同一个数字Object.is(foo, foo); // true Object.is(window, window); // trueObject.is(foo, bar); // false Object.is([], []); // falsevar test { a: 1 }; Object.is(test, test); // trueObject.is(null, null); // true// 特例 Object.is(0, -0); // false Object.is(-0, -0); // true Object.is(NaN, 0/0); // true Object.freeze() 冻结一个对象冻结指的是不能向这个对象添加新的属性不能修改其已有属性的值不能删除已有属性以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说这个对象永远是不可变的。该方法返回被冻结的对象。 var obj {prop: function() {},foo: bar };// 新的属性会被添加, 已存在的属性可能 // 会被修改或移除 obj.foo baz; obj.lumpy woof; delete obj.prop;// 作为参数传递的对象与返回的对象都被冻结 // 所以不必保存返回的对象因为两个对象全等 var o Object.freeze(obj);o obj; // true Object.isFrozen(obj); // true// 现在任何改变都会失效 obj.foo quux; // 静默地不做任何事 // 静默地不添加此属性 obj.quaxxor the friendly duck; console.log(obj) Object.isFrozen() 判断一个对象是否被冻结 . Object.preventExtensions() 对象不能再添加新的属性。可修改删除现有属性不能添加新属性。 var obj {name :lilei,age : 30 ,sex : male }obj Object.preventExtensions(obj); console.log(obj); // {name: lilei, age: 30, sex: male} obj.name haha; console.log(obj) // {name: haha, age: 30, sex: male} delete obj.sex ; console.log(obj); // {name: haha, age: 30} obj.address china; console.log(obj) // {name: haha, age: 30} Object.isExtensible() 判断对象是否是可扩展的Object.preventExtensionsObject.seal 或 Object.freeze 方法都可以标记一个对象为不可扩展non-extensible Object.seal() Object.seal() 方法可以让一个对象密封并返回被密封后的对象。密封一个对象会让这个对象变的不能添加新属性且所有已有属性会变的不可配置。属性不可配置的效果就是属性变的不可删除以及一个数据属性不能被重新定义成为访问器属性或者反之。但属性的值仍然可以修改。尝试删除一个密封对象的属性或者将某个密封对象的属性从数据属性转换成访问器属性结果会静默失败或抛出TypeError 异常. 不会影响从原型链上继承的属性。但 __proto__ (  ) 属性的值也会不能修改。 var obj {prop: function () {},foo: bar};// 可以添加新的属性,已有属性的值可以修改,可以删除 obj.foo baz; obj.lumpy woof; delete obj.prop;var o Object.seal(obj);assert(o obj); assert(Object.isSealed(obj) true);// 仍然可以修改密封对象上的属性的值. obj.foo quux;// 但你不能把一个数据属性重定义成访问器属性. Object.defineProperty(obj, foo, { get: function() { return g; } }); // 抛出TypeError异常// 现在,任何属性值以外的修改操作都会失败. obj.quaxxor the friendly duck; // 静默失败,新属性没有成功添加 delete obj.foo; // 静默失败,属性没有删除成功// ...在严格模式中,会抛出TypeError异常 function fail() {use strict;delete obj.foo; // 抛出TypeError异常obj.sparky arf; // 抛出TypeError异常 } fail();// 使用Object.defineProperty方法同样会抛出异常 Object.defineProperty(obj, ohai, { value: 17 }); // 抛出TypeError异常 Object.defineProperty(obj, foo, { value: eit }); // 成功将原有值改变 Object.isSealed() 判断一个对象是否被密封 参考链接 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/create http://es6.ruanyifeng.com/#docs/object
http://www.zqtcl.cn/news/848678/

相关文章:

  • 网站品牌打造wordpress插件有木马
  • 网站开发与软件研发有什么区别查网站域名备案查询系统
  • 硬盘做免费嗳暧视频网站黄冈免费网站推广平台汇总
  • node做网站怎么知道蜘蛛来过怎么学网站设计
  • 青海省建设厅网站公示公告简单建站
  • 手机网站用什么后台wordpress 百度蜘蛛
  • 网站文章伪原创怎么做手机网站 程序
  • 网站建设每月工作多少开发小程序的目的
  • 社区网站建设方案pptwordpress用户名在哪看
  • 浙江企业响应式网站建设公司简介如何写
  • 自己做静态网站的步骤店面设计在线
  • 活动汪活动策划网站wordpress 无法保存
  • 门户网站开发案例兰州需要做网站的公司有哪些
  • 东莞企业网站asp网站怎么安装
  • 个人做公司网站网站备案取消接入
  • 崇信网站建设it外包的收益主要有哪些
  • 安陆做网站多少钱免费网站定制
  • 快递网站模版长春好的做网站公司有哪些
  • 怎么利用公司网站开发客户网站建设重点步骤
  • 网站站内推广用个人电脑做网站的步骤
  • 网站设计主要包含3个方面陕西城乡住房建设部网站
  • 专门做汽车配件的网站东莞招聘网有哪些比较好
  • 网站前台怎么套用织梦后台小网站怎么建设
  • 网站框架代码深圳手机网站设计
  • 更改网站主题九江建网站的公司
  • 如何分析一个网站网站页面建设
  • 做网站好网页制作3个网页的网站图片
  • 合肥网站建设网站推广新的网站建设一般多少钱
  • 北京网站改版哪家好网站关键词怎样做优化
  • 网站开发行业分析wordpress 粘贴表格