码迷,mamicode.com
首页 > 其他好文 > 详细

函数易错题目合集

时间:2018-05-24 22:18:45      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:存在   就是   this   turn   一个   cal   cti   UNC   log   

 

函数易错题目合集

var f1 = function f2(){};  
f1.name  //"f2"


var f1 = function f2(){};  
f2.name  //报错:f2 is not defined

var f1 = function f2(){}; 
console.log(f2)  
//f2 is not defined(f2 不存在,而且 f2 不是 undefined)

function f(){console.log(this)}; 
f.call(1)  //Number 对象 1

function f(){use strict console.log(this)}; 
f.call(1)  //1

function f(){console.log(this)}; 
f.call()  //Window 对象

function f(){use strict console.log(this)};  
f.call()   //undefined

var a = console.log(1); 
a  //undefined

function f(){ return 1}; a = f ; 
a //函数 f

function f(){ return 1}; var a = f.call() ; 
a //1

var a = 1,2; 
a //报错

var a = (1,2); 
a //2

var a = (1, console.log(2)); 
a //undefined


function f(){
    return function f2(){}
}
var a = f.call()
a //函数 f2


function f(){
    return function f2(){}
}
var a = f.call()
var b = a.call()
b //undefined


function f1(){
    console.log(this)
    function f2(){
    }
}
var obj = {name: obj}
f1.call( obj )
//obj 对象


function f1(){

    function f2(){
        console.log(this)
    }
    f2.call()
}
var obj = {name: obj}
f1.call( obj )
//Window 对象


function f1(){
    console.log(this) // 第一个 this
    function f2(){
        console.log(this) // 第二个 this
    }
    f2.call()
}
var obj = {name: obj}
f1.call( obj )
//为什么两个 this 值不一样?
//this 就是 call 的第一个参数,第一个 this 对应的 call 是 f1.call(obj),第二个 this 对应的 call 是 f2.call()
//this 和 arguments 都是参数,参数都要在函数执行(call)的时候才能确定

 

函数易错题目合集

标签:存在   就是   this   turn   一个   cal   cti   UNC   log   

原文地址:https://www.cnblogs.com/nolaaaaa/p/9085355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!