您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

JavaScript es6中关于对象的扩展详解

2024/5/15 21:48:55发布33次查看
一、现在还有很多浏览器不能直接使用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 是不是很奇怪啊
以上就是javascript es6中关于对象的扩展详解的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product