javascript - js创建对象
迷茫
迷茫 2017-04-11 12:07:05
[JavaScript讨论组]

js中声明一个函数如:

function myf(arg){
    //doSomething
    }
    
   var myobj=new myf("some");//1.创建对象
    myobj;
    
   myf("some");//2.执行函数

请问直接调用函数执行和创建对象在执行有什么不同吗?新手不是很理解
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(5)
怪我咯

这里没啥区别,但是当你需要把一个函数当成变量传去传去的时候,就有用了。这就是所谓的函数是一等公民,意味着一个变量,它即可以指向整数、字符串,也可以指向函数。它即可以作为函数的参数,也可以作为类的成员,用起来非常灵活

怪我咯
function Person(_name,_sex){
    this.name = _name;
}
var person = new Person("test");//this指向的是Person的实例也就是person
Person("test");//this指向的就是window
巴扎黑

直接调用的形式好像所有的语言都是一样,传入参数得到返回值。
但是用new就不一样了,你可以参考http://www.cnblogs.com/sitemanager/p/3535959.html

高洛峰

当前函数中正在执行的上下文环境不一样了,也就是说this指向不一样了

高洛峰

this的指向不同,我昨天刚刚看到,new出来的this指向之歌对象的实例,如果是申明的this指向window

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号