ECMA2015(ES6)简单入门-2-参数默认-...-解构参数-__proto__
2017-04-14 23:07
316 查看
默认参数设置
//es6里可以给定义的函数接受的参数设置默认的值;
//如果不去指定函数参数的值 那函数调用的时候就使用默认的值
function breakfast_1(dessert=”apple”,drink=”tea”){//指定默认值 直接在形参的后面赋值
return
}
console.log(
breakfast_1()
);
console.log(“……现在设置他们的值后……”)
console.log(
breakfast_1(“X倒日本”,”R倒棒子”)
);
let fruit=[“apple”,”banana”],
foods=[“姑娘”,”小伙”,”法海”,…fruit];//fruit展开放入到foods中
//展开
console.log(fruit);//输出的是数组
console.log(…fruit);//单独输出的是数组里的每一个值 相当于把数组展开了
console.log(foods);
//…rest 剩余操作符 一般用在函数的参数里面
function breakfast_2(dessert,drink,…food){
//让函数支持更多的参数
console.log(dessert,drink,food);//其余的参数放在了一个叫food的数组里
console.log(“——–下面的是展开的———”);
console.log(dessert,drink,…food);
}
breakfast_2(“apple”,”tea”,”tea1”,”tea2”,”tea3”);
function breakfast_3(man,woman,{location,restaurant}={}){
console.log(man+”和”+woman+”在”+location+restaurant+”洗澡”);
}
breakfast_3(“乔瑞”,”姑娘”,{location:”上海”,restaurant:”必胜客”});
function breakfast_4(man,woman,{location,restaurant}={}){
//es6给函数添加了个name属性 能得到函数的名字
}
console.log(
breakfast_4.name
);
//如果是匿名函数 函数名字就是定义的变量
// 如果是定义变量的有名字函数 那么打印出来的还是函数的名字而不是定义的变量
let breakfast= function breakfast_5(man,woman,{location,restaurant}={}){
//es6给函数添加了个name属性 能得到函数的名字
};
console.log(
breakfast.name//因为breakfast_5它的优先级更高
);
let breakfast_6 = dessert => dessert;
//let定义变量 变量名 =函数开始接受的参数 => 函数返回的值
//普通的写法
var breakfast_7 =function breakfast_7(dessert) {
return dessert
};
// 如果有多个参数
let breakfast_8 = (dessert,drink) => dessert + dessert;
// 如果无参数
let breakfast_9 = () => console.log(“this 里面没参数”);
breakfast_9();
//let 变量=变量值
let dessert=”cake”,drink=”coco”;
// 在对象里面添加跟变量名一样的属性的话,并且属性的值就是变量表示的值;可以直接把:以后都去掉
dessert,
drink,
breackfast_old:function(){alert(“old”)},// 以前的写法
breackfast_now(){alert(“now”)}// 现在的写法
};
foods.breackfast_old();
foods.breackfast_now();
let man={},drinks=”name little”;
man.name=”make”;
//属性名中间不能有空格man.name little=”daead”
// 如果有空格可以用方括号+””
man[“name little”]=”daead”;
man[drinks]=”daead”;//这和上行的代码是一样的意思
//判断两个东西是不是同一东西nan=nan,+0!=-0
console.log(
Object.is([],Array)
);
Object.assign()把对象的值赋值到另一个对象里
let breakfast_10 = {};
Object.assign(
breakfast_10,//接受者
{drink:”beer”}//复制来源
)
console.log(breakfast_10);
let breakfast_11 = {
getDrink () {
return “coffee”
}
};
let dinner = {
getDrink(){
return “beer”;
}
};
let sunday={
使用_proto_设置继承别的对象里的方法
proto:breakfast_11,//这个sunday就拥有了breakfast_11下的getDrink的方法
//如果想在sunday里面重新定义getDrink方法 覆盖掉breakfast_11对象里的getDrink方法
//并且想在这个sunday的getDrink方法里得到breakfast_11的getDrink方法返回来的值
// super+方法名字 得到方法返回来的东西
getDrink(){
return super.getDrink()+”wahahahahahh”;
//执行breakfast_11对象里面的getDrink方法去得到返回来的值
}
};
console.log(sunday.getDrink());
console.log(Object.getPrototypeOf(sunday) === breakfast_11);
//es6里可以给定义的函数接受的参数设置默认的值;
//如果不去指定函数参数的值 那函数调用的时候就使用默认的值
function breakfast_1(dessert=”apple”,drink=”tea”){//指定默认值 直接在形参的后面赋值
return
${dessert}+and+${drink};
}
console.log(
breakfast_1()
);
console.log(“……现在设置他们的值后……”)
console.log(
breakfast_1(“X倒日本”,”R倒棒子”)
);
...es6中心添加的操作符号 可以叫做spread或者rest
let fruit=[“apple”,”banana”],
foods=[“姑娘”,”小伙”,”法海”,…fruit];//fruit展开放入到foods中
//展开
console.log(fruit);//输出的是数组
console.log(…fruit);//单独输出的是数组里的每一个值 相当于把数组展开了
console.log(foods);
//…rest 剩余操作符 一般用在函数的参数里面
function breakfast_2(dessert,drink,…food){
//让函数支持更多的参数
console.log(dessert,drink,food);//其余的参数放在了一个叫food的数组里
console.log(“——–下面的是展开的———”);
console.log(dessert,drink,…food);
}
breakfast_2(“apple”,”tea”,”tea1”,”tea2”,”tea3”);
解构参数
function breakfast_3(man,woman,{location,restaurant}={}){
console.log(man+”和”+woman+”在”+location+restaurant+”洗澡”);
}
breakfast_3(“乔瑞”,”姑娘”,{location:”上海”,restaurant:”必胜客”});
function breakfast_4(man,woman,{location,restaurant}={}){
//es6给函数添加了个name属性 能得到函数的名字
}
console.log(
breakfast_4.name
);
//如果是匿名函数 函数名字就是定义的变量
// 如果是定义变量的有名字函数 那么打印出来的还是函数的名字而不是定义的变量
let breakfast= function breakfast_5(man,woman,{location,restaurant}={}){
//es6给函数添加了个name属性 能得到函数的名字
};
console.log(
breakfast.name//因为breakfast_5它的优先级更高
);
箭头函数 使用箭头定义函数的方式
let breakfast_6 = dessert => dessert;
//let定义变量 变量名 =函数开始接受的参数 => 函数返回的值
//普通的写法
var breakfast_7 =function breakfast_7(dessert) {
return dessert
};
// 如果有多个参数
let breakfast_8 = (dessert,drink) => dessert + dessert;
// 如果无参数
let breakfast_9 = () => console.log(“this 里面没参数”);
breakfast_9();
//let 变量=变量值
let dessert=”cake”,drink=”coco”;
foods={//dessert属性:dessert属性值
// 在对象里面添加跟变量名一样的属性的话,并且属性的值就是变量表示的值;可以直接把:以后都去掉
dessert,
drink,
breackfast_old:function(){alert(“old”)},// 以前的写法
breackfast_now(){alert(“now”)}// 现在的写法
};
foods.breackfast_old();
foods.breackfast_now();
对象属性名
let man={},drinks=”name little”;
man.name=”make”;
//属性名中间不能有空格man.name little=”daead”
// 如果有空格可以用方括号+””
man[“name little”]=”daead”;
man[drinks]=”daead”;//这和上行的代码是一样的意思
//判断两个东西是不是同一东西nan=nan,+0!=-0
console.log(
Object.is([],Array)
);
Object.assign()把对象的值赋值到另一个对象里
let breakfast_10 = {};
Object.assign(
breakfast_10,//接受者
{drink:”beer”}//复制来源
)
console.log(breakfast_10);
let breakfast_11 = {
getDrink () {
return “coffee”
}
};
let dinner = {
getDrink(){
return “beer”;
}
};
let sunday={
使用_proto_设置继承别的对象里的方法
proto:breakfast_11,//这个sunday就拥有了breakfast_11下的getDrink的方法
//如果想在sunday里面重新定义getDrink方法 覆盖掉breakfast_11对象里的getDrink方法
//并且想在这个sunday的getDrink方法里得到breakfast_11的getDrink方法返回来的值
// super+方法名字 得到方法返回来的东西
getDrink(){
return super.getDrink()+”wahahahahahh”;
//执行breakfast_11对象里面的getDrink方法去得到返回来的值
}
};
console.log(sunday.getDrink());
console.log(Object.getPrototypeOf(sunday) === breakfast_11);
相关文章推荐
- ECMA2015(ES6)简单入门-1-let块-恒量const-解构-字符串模板
- ECMA2015(ES6)简单入门-3-迭代器-生成器-定义类-__静态方法__继承
- ECMA2015(ES6)简单入门-4-set&get-map-moudle-import-export default
- js 交换赋值我认为最简单的方法 (ES6解构)
- python入门笔记(Day2)--默认/可变/关键字/命名字关键字参数
- 2015 最简单的 Spring MVC 入门教程
- C语言中数组作为函数的参数以及返回值的使用简单入门
- 带默认参数值的函数的简单理解
- ES6新特性之解构、参数、模块和记号用法示例
- VS2015 Git 源码管理工具简单入门
- ES6新特性-------解构、参数、模块和记号(续)
- 手把手教es6,ecma2015,力求做通俗易懂的es6教程
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数
- ES6 简单入门分享
- ES6——Day3(字符串的解构赋值+函数参数解构赋值)
- ES6新特性-------解构、参数、模块和记号(续)
- protobuf-net之简单入门
- [教程]自定义JSP中的Taglib标签之一简单入门篇(无参数的自定义标签)
- ES6学习——新的语法:函数参数解构
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数