04_12.箭头函数的注意点.js

/*
 * @Author: Robyn 
 * @Date: 2017-10-31 20:27:24 
 * @Last Modified by:   Robyn 
 * @Last Modified time: 2017-10-31 20:27:24 
 */



// a.箭头函数没有自己的this,函数体内部写的this,指向的是外层代码块的this
// this.name = "迪丽热巴";
// this.age = 15;

// var girlFriend = {
//     name: "刘亦菲",
//     age: 16,
//     // showLove: function() {
//     //     console.log("大家好,我叫" + this.name + "今年" + this.age + "岁了,追命,么么哒!");
//     // }
//     showLove: ()=> {
//         console.log("大家好,我叫" + this.name + "今年" + this.age + "岁了,追命,么么哒!");
//     } 
// };
// girlFriend.showLove();


// b.箭头函数内部的this是定义时所在的对象,而不是使用时所在的对象并且不会改变
// var girlFriend = {
//     name: "刘亦菲",
//     age: 16,
//     showLove: function() {
//         var fn = ()=> {
//             console.log(this.name);
//         }
//         return fn;
//     }
// };
// var fn = girlFriend.showLove();
// var obj = {
//     name: "迪丽热巴"
// }
// fn.call(obj);

// c.箭头箭头函数不能用作构造函数
// var GirlFriend = function(name,age) {
//     this.name = name;
//     this.age = age;
// }
// var myGf = new GirlFriend("热巴",15);
// console.log(myGf.name,myGf.age);

// var GirlFriend = (name,age)=> {
//     this.name = name;
//     this.age = age;
// }
// var myGf = new GirlFriend("热巴",15);
// console.log(myGf.name,myGf.age);


// d.箭头函数内部不存在arguments,箭头函数体中使用的arguments其实指向的是外层函数的arguments
// function fn() {
//     console.log(arguments);//{ '0': 1, '1': 2, '2': 3, '3': 4, '4': 5, '5': 6, '6': 7, '7': 9 }
//     var fn1 = function() {
//         console.log(arguments);//{ '0': 'a', '1': 'b', '2': 'c' }
//     }
//     return fn1;
// }
// var fn1 = fn(1,2,3,4,5,6,7,8,9);
// fn1("a","b","c");
function fn() {
    console.log(arguments);
    var fn1 = ()=>{
        console.log(arguments);
    }
    return fn1;
}
var fn1 = fn(1,2,3,4,5,6,7,8,9);
fn1("a","b","c");
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容