ES6基础教程(第六节)——对象的扩展
es6对对象新增了部分便捷写法和简易函数,以更快的满足前端开发的需求,这一节我们从:简洁的表示法、属性名方法可以是表达式、
Object.is()函数、Object.assgin()函数来进行讲解;
此外还拓展一些例如:严格相等和抽象相等的区别、javascript面向对象的实现的内容
便捷写法:
var name="张三";
var age=18;
var person={name,age}
这就是便捷写法,不再需要写key值,直接将这个变量写入即可;
简易函数:
var person={
say(){
console.log("好好学习,天天向上")
}
}
简易函数直接在函数名后面加小括号和大括号,省去了“function”,表面省一点点,但积少成多就会节省很大的代码量。
Object.is()函数:比较两个值是否严格相等,或者说全等。
先介绍一下什么是严格相等,因为js是一种弱类型语言,变量类型可以随场景进行变化,这有好有坏,不能片面的叙述。
严格相等就是要求两个对比对象的数值和类型都是一致的。
var str="100";
var num=100;
str==num
//true
str===num
//false
说明str和num不是全等的,因为他们的类型不一致;
如果我们用Object.is()进行判断,即:
var str="100";
var num=100;
var num2=100;
Object.is(str,num);
//false
Object.is(num,num2);
//true
Object.assign()函数:将源对象的属性赋值到目标对象上。这么讲肯定是有点抽象的,咱们用案例说话,更直观更形象.
//这个充当目标对象
let target = {"a":1};
//这个充当源对象
let origin = {"b":2,"c":3};
Object.assign(target,origin);
//打印target对象出来看一下
console.log(target);
//结果 {a: 1, b: 2, c: 3}
同时,源对象也可以是多个:
//这个充当目标对象
let target = {"a":1};
//这个充当源对象
let origin1 = {"b":2,"c":3};
//这个充当源对象
let origin2 = {"d":4,"e":5};
Object.assign(target,origin1,origin2);
//打印target对象出来看一下
console.log(target);
//结果 {a: 1, b: 2, c: 3, d: 4, e: 5}
当多个对象中有相同的属性时候,会选择最后那个属性值作为最后的值。
//这个充当目标对象
let target = {"a":1};
//这个充当源对象
let origin1 = {"a":2};
//这个充当源对象
let origin2 = {"a":3};
Object.assign(target,origin1,origin2);
//打印target对象出来看一下
console.log(target);
//结果 {a: 3}
这个函数在实际开发过程中使用的非常多,所以大家要重点关注。
模拟面向对象编程有几个关键步骤:
1、构造函数;
2、给prototype对象添加属性和方法;
3、实例化;
4、通过实例化后的对象调用类的方法或者属性。
//构造函数模拟创建一个Dog类
function Dog(name){
this.name = name;
}
//把一些属性和方法,定义在prototype对象上
Dog.prototype = {
"type":"动物",
"say":function(){
alert("名字叫"+this.name);
}
};
//实例化
var dog = new Dog('旺财');
//调用say方法
dog.say();
//结果:名字叫旺财
这节就吹到这里,期待与你一起进步!
公众号