<html>
<body>
<script>
function call(first,second)
{
first(second);
}
var func=new Function("x","alert(x+10);") /*
这边的x是参数吗?如果不是参数,那如何确定在call(func,10)中传递给函数func的参数10就是给x的?
将这种形式的函数对象,改写成好理解的普通函数,不是函数对象(待改写对象本身就是函数对象)!
如果我要在函数对象中添加变量y,怎么添加?
*/
call(func,10);
</script>
</body>
</html>
x是形参。
var func=new Function("x","alert(x+10);")相当于
var func = function (x) {如果要添加变量y
var func = new Function('x', 'y', "alert(x + y + 10);");然后call
function call(first, second, third) {添加变量y的问题:变量是变量,形参是形参,不一样吧,怎么添加变量的方法和添加形参的方法竟然是一样!改写一段代码:
var x=15;
document.write(x);
将以上代码写成是函数对象的形式怎么写?
首先明确一点
var x = 15;这句话中x是变量。
然后下面这句
document.write(x);x是实参。
然后,内置的方法
document.write = function (str) {...};这其中str是形参。
你把实参和形参都叫为变量也没关系。
把document.write改写成函数对象
document.write = new Function("str", "...");追问根据你的方法改写:
var x=15;
document.write(x);
如下:
document.write=new Function("x","alert(x)"); // 将alert(x)改为document.write(x)没有用是为什么?
document.write(15);
是这样吗?
可我想要的是在函数对象中设置变量,本身拥有值,不需要再传递值给他了这种样子啊!不是形参,然后传递参数。
要写也是
再说,我也只是举个例子,不要随意修改内置方法。
我猜你要的是这种?
var func = new Function("x", "var y = 5; alert(x + y + 10);");参数和变量是一样的吗?怎么添加变量的方法和添加参数是一样的?
追答function call (first, second, third)
{
first (second, third);
};
var func = new Function("x","y","alert(x+y+10);");
func.call(null, 10, 20);
以下纯属个人理解(替我判断对错,谢谢):
变量:本身可被赋值;
参数(形参,实参):本身不可被赋值,需传递值;
然后在帮我解释下,变量和参数之间有什么区别?
若是没区别,则以下代码为什么不能运行:
document.write=new Function("var x=15","alert(x);"); //变量改成参数可以运行,这不证明在函数对象中,变量是不允许出现的吗
document.write();