采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如果是通过var h5=new H5();来新建对象的话,那么H5函数中为什么最后要return this?如果要return this,那么应该var h5=H5( )这样使用。对吗?
一、不 return this 也可以认为是构造函数,更深入的说:普通的函数,处理的是参数,重要的是返回值。构造函数,处理的是 this ,比如 this.name 。 即使不返回 this 也是没问题。
之所以返回 this ,是为了可以方便的链式调用。比如,可以直接 (new H5()).name ,如果里面有其他方法的话,还可以 ( new H5() ).sayHello():
二、可以去掉,有 new 无new 主要看 Object() 这个函数如何处理,因为在本课程中, Object 里面是「创建」了「新」的DOM对象并且返回,所以可以去掉。
非常感谢!
H5 是一个构造函数,通过 new 可以,用 H5 定义的构造函数为模板,创建新的对象。所以返回 this
参考以下代码:
function H5( name ) { this.name = name; return this; } // ------- var h5 = H5('h5'); // h5 返回的是 windows var h6 = H5('h6'); // ------- 所以以上代码和我们预期的非常不一样。。
但是如果我们这要写,基本和预期一致了
var h5 = new H5('h5'); // h5 返回的是 H5 对象 var h6 = new H5('h6');
感谢回答。我是小白不太理解哈,还想请教两个问题。
1
function H5(){
this.name="name";
//return this;
}
var h5=new H5();
其中return this有和没有有什么区别?没有return this就是构造函数吧。
2
function H5ComponentBase(){
var component=new Object();
component.name="name";
return component;
var h5=new H5ComponentBase();
这个new 是否可以去掉?没有new的是工厂函数模式吧。
登录后可查看更多问答,登录/注册
用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告
1.4k 9
1.7k 6
1.2k 6
2.3k 5
1.2k 5
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号