为了账号安全,请及时绑定邮箱和手机立即绑定

有关JavaScript创建对象的疑问

有关JavaScript创建对象的疑问

喵喔喔 2018-12-07 07:41:30
有下面一个函数: function fntest(){    var name="bokeyuan";}此时我写出下面2条语句: 1.var fntest2=fntest; 2.var fntest3=new fntest();提问:1. 这两条语句的区别在哪里?       2. 函数fntest是一个对象还是一个函数,为什么可以用new关键字呢? 有人能帮助我回答这2个问题吗? 谢谢大家!
查看完整描述

5 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

fntest是函数,两条语句的区别,fntest2是引用了fntest函数,fntest3是创建了一个构造函数为fntest的对象。

typeof(fntest2)//function

typeof(fntest3)//object

查看完整回答
反对 回复 2018-12-24
?
不负相思意

TA贡献1777条经验 获得超10个赞

js中的函数构造是是用Function这个类,

var  name=new function(arg1,..,function_body);

而函数的表现形式倒是多种的:

1. function aa(){}

2.var name=function(){}

表现形式不一样,但机制都是一样,都是要么直接引用函数,要么创建一个对象来应用函数。

查看完整回答
反对 回复 2018-12-24
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

感谢你的回答,但是好像并没有回答我的问题,

注:你写的【var  name=new function(arg1,..,function_body);】是错误的。正确的是:

【var  name=new Function(arg1,..,function_body);】

你可以试一试。

查看完整回答
反对 回复 2018-12-24
?
FFIVE

TA贡献1797条经验 获得超6个赞

呵呵 嗯的。

var name=new Function("a","return a");
alert(name('test'));

@易之名: 

查看完整回答
反对 回复 2018-12-24
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

1.区别在于:fntext2只是函数fntext的别名,fntext3通过new关键字创建一个对象(通过new关键字调用一个函数时,这个函数就是构造函数)

2.javascript中一切都是对象,函数当然也不例外,它是Function类的对象。

希望对你有帮助!

查看完整回答
反对 回复 2018-12-24
  • 5 回答
  • 0 关注
  • 434 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号