介绍
这篇文章主要介绍ES6对象的扩展及新增方法的内容是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强> 1,属性的简洁表示法强>
ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。
const foo=& # 39;酒吧# 39;; const巴兹={foo}; 巴兹//{foo: & # 39;酒吧# 39;}//等同于 const巴兹={foo: foo}
上面代码表明,ES6允许在对象之中,直接写变量。这时,属性名为变量名,属性值为变量的值。下面是另一个例子。
函数f (x, y) { 返回{x, y} }//等同于 函数f (x, y) { 返回{x, x, y, y}; } f (1、2)//{x: 1, y: 2}
除了属性简写,方法也可以简写。
const o={ 方法(){ 返回& # 39;你好! & # 39; } }//等同于 const o={ 方法:函数(){ 返回& # 39;嗨# 39;; } }
下面是一个实际的例子。
让出生=& # 39;2000/01/01& # 39;; const人={ 名称:& # 39;张三& # 39;,//等同于出生:出生 出生,//等同于你好:函数().... 你好(){ console.log(& # 39;我的名字是& # 39;,this.name) } }
这种写法用于函数的返回值,将会非常方便。
函数getPoint () { const x=1; const y=10; 返回{x, y} } getPoint ()//{x: 1, y: 10}
CommonJS模块输出一组变量,就非常合适使用简洁写法。
让女士={}; 函数getItem(关键){ 返回键在女士吗?(例子)女士:零; } 函数setItem(关键字,值){ 女士(例子)=价值; } 函数clear () { 女士={} } 模块。出口={getItem setItem,清楚};//等同于 模块。出口={ getItem: getItem, setItem: setItem, clearLclear }
属性的赋值器(setter)和取值器(getter)事实上也是采用这种写法。
const车={ _wheels: 4 把轮子(){ 返回this._wheels; }, 设置轮子(价值){ 如果(value<强> 2。属性名表达式强>
JavaScript定义对象的属性,有两种方法。
//方法一 obj。foo=true;//方法二 obj[& # 39;一个# 39;+ & # 39;公元前# 39;]=123;上面代码的方法一是直接用标识符作为属性名,方法二是用表达式作为属性名,这时将表达式放在方括号之内。
但是,如果使用字面量定义对象(使用大括号),在ES5中只能使用方法一(标识符)定义属性。var obj={ foo:没错, 美国广播公司(abc): 123 }ES6允许字面量定义对象时,用方法二作为对象的属性名,即把表达式放在括号内。
让propKey=& # 39; foo # 39;; 让obj={ [propKey]:没错, [& # 39;一个# 39;+ & # 39;公元前# 39;):123 }下面是另一个例子:
让lastWord=& # 39;最后一个词# 39;; const={ & # 39;第一个词# 39;:& # 39;你好# 39; [lastWord]: & # 39; & # 39; }; [& # 39;第一个词# 39;]//你好 [lastWord]//世界 [& # 39;最后一个词# 39;]//世界表达式还可以用于定义方法名。
让obj={ [& # 39;h # 39; + & # 39;嗨# 39;](){ 返回& # 39;你好# 39; } } obj.hello()//嗨;注意:
属性名表达式与简洁表示法,不能同时使用,会报的错。 属性名表达式如果是一个对象,默认情况下会自动将对象转为字符串(对象对象),这一点要特别小心。const keyA={: 1}; const keyB={b: 2}; const myObject={ [keyA]: & # 39; valueA& # 39; [keyB]: & # 39; valueB& # 39; }; {myObject;//对象(对象对象):“valueB"}上面代码中,[keyA]和[keyB]得到的都是对象的对象,所以[keyB]会把[keyA]覆盖掉,而myObject最后只有一个对象(对象)属性。
<强>方法的名字属性强>
函数的名字属性,返回函数名。对象方法也是函数,因此也有名字属性。
const人={ sayName () { console.log(& # 39;你好! & # 39;); }, }; person.sayName.name//皊ayName"ES6对象的扩展及新增方法的内容是什么