视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JavaScriptes6中关于对象的扩展详解
2020-11-27 20:14:31 责编:小采
文档


一、现在还有很多浏览器不能直接使用es6语法。特别是手机端的一些低版本的浏览器。都需要用bale转换一下。

但是目前流行的框架中(vue,react,angular)。都有自己的脚手架,都能用webpack转换下。或者直接自己配置webpack , fis3,nowa 等转换。

照样不是美滋滋。

二、属性的简洁写法 

//1.属性简洁表示语法
 var foo = 'bar'; var obj = {foo};
 console.log(obj); //创建对象的函数
 function createOjb(x = 1,y = 1){ //x = 1, y = 1; 参数的默认值
 return {
 x,y
 }
 } var newObj = createOjb(); 
 console.log(newObj); //{x:1,y:1} 
 var birthDate = '2017/8/12' //2 方法的简写
 var person = {
 name:'绿巨人',
 age:'200岁',
 birthDate,
 say(){
 console.log(this.name); //等同于 say:function(){ console.log(this.name)}; }
 }
 person.say(); // 绿巨人
 //in 方法
 var msg = {
 hello:'helloValue',
 world:'worldValue'
 }
 console.log('hello' in msg,'helloValue' in msg); 
 // true,false; => 判断某个键值是在某个对象里面
 //commonJS 模块化
输出 function Obj(methods){ this.methods = methods || {}; } Obj.prototype.getItem = function(key){ return key in this.methods ? methods[key] : null; } Obj.prototype.setItem = function(key,value){ this.methods[key] = value; } var obj = new Obj(); //module.exports = {obj}; //4.注意点 :简洁写法的属性名总是字符串,这会导致一些看上去比较奇怪的结果。

三、属性表达式

//属性名表达式
 // 1. 对象添加属性的两种方式
 var newObj = new Object();
 newObj.name = 'html';
 newObj['age'] = '20岁'; //对象字面量的方式 se5 中字面量方式下 属性名字只能用 字符串形式。不能用 ['name']
 var newObj1 = {
 name:'css',
 age:'30岁'
 } //SE6
 var newObj2 = {
 ['name']:'js',
 ['a' + 'ge']:'40岁',
 ['hello world']:'say hello world',
 ['say' + ' hi'](){
 console.log(this['hello world'])
 }
 }
 console.log(newObj2.name); // jss
 console.log(newObj2['hello world']); // say hello world
 newObj2['say hi'](); // say hello world
 //!!!注意 属性名表达式是不能喝属性简写一起使用的
 var objKey = {a:1}; var newObj3 = {
 [objKey]:'我是一个对象'
 }
 console.log(newObj3); // {[object object]:'我是一对象'}
 console.log(newObj3[{a:1}]); // 我是一个对象 
 console.log(newObj3['object object']); // undefined 是不是很奇怪啊

下载本文
显示全文
专题