亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

typeof Function.prototype 是 function 為什么不可以當作構造函數

typeof Function.prototype 是 function 為什么不可以當作構造函數

哆啦的時光機 2018-10-04 09:19:20
typeof Function.prototype 是 function 為什么不可以當作構造函數 與前者有什么
查看完整描述

1 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

是可以當做構造函數來用的

var adder = new Function('a', 'b', 'return a + b');// Call the functionadder(2, 6);// > 8

區別的話,用構造函數生成的函數不會有閉包,他們只能訪問自身作用域和全局作用域聲明的變量和函數。其他詳細的地方參考MDN

Functions created with the Function constructor do not create closures to their creation contexts; they always are created in the global scope. When running them, they will only be able to access their own local variables and global ones, not the ones from the scope in which the Function constructor was called. This is different from using eval with code for a function expression.

var x = 10;


function createFunction1() {

    var x = 20;

    return new Function("return x;"); // this |x| refers global |x|

}


function createFunction2() {

    var x = 20;

    function f() {

        return x; // this |x| refers local |x| above

    }

    return f;

}


var f1 = createFunction1();

console.log(f1());          // 10

var f2 = createFunction2();

console.log(f2());          // 20


查看完整回答
反對 回復 2018-11-09
  • 1 回答
  • 0 關注
  • 484 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號