javascript---a very important point of function constructor(Function())
4056 단어 Constructor
var
f
=
new
F
unction
(
"
x
"
,
"
y
"
,
return
"
x*y;
"
);
it is equivalent to a function defined with normal syntax:
function f(x,y)
{
return x*y;
}
the function constructor expects any number of string arguments separated from each other by semicolons,the last augument is treated as the body of function;
Notes that there is not a argument is treated as the name of the function,so the function constructor creates anonymous functions.
we can see the above function created by function constructor,the function body is "x*y;",it is surprised,the body is just a string statement,so how does it do??let me explain the reason,the function contructor allows the javascript code to be dynamically created and compiled at runtime,it does something that is the same as eval () function does;
a very important point of function constructor
code comes first:
var
name
=
"
global
"
;
function
Fun()
{
var
name
=
"
local
"
;
return
new
Function(
"
return name
"
);
}
alert(Fun()());//the result
who can tell me what the result is??
it's amazed,it displays global.why??beacuse when we create a function with function constructor,the function is always compiled as if it is top level function,the function constructor does not use the local scope;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Java] 객체지향 프로그래밍 - 생성자App 클래스를 예로 들어 인스턴스 생성하는 과정은 아래와 같아요. 컴파일을 할 때 소스 파일*.java의 클래스가 생성자가 하나도 없다면 컴파일러는 자동적으로 아래와 같은 생성자를 추가해서 컴파일해요. 아무 기능도...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.