比如:
function ShowUsers() {
// console.log('test');
}
new ShowUsers();
module.export = ShowUsers
function ShowUsers() {
// console.log('test');
}
ShowUsers();
module.export = ShowUsers
有什么区别?
比如:
function ShowUsers() {
// console.log('test');
}
new ShowUsers();
module.export = ShowUsers
function ShowUsers() {
// console.log('test');
}
ShowUsers();
module.export = ShowUsers
有什么区别?
你这样module.export出去的都是 ShowUsers这个Function,这2段代码对外界的影响木有任何差别,所以你举的例子和问得问题并不完全匹配。
再看上一句new ShowUsers()和ShowUser()的区别在于,一个执行了ShowUsers的构造函数,一直执行了ShowUsers本身。
你把例子改成
function ShowUsers() {
this.user = "test";
console.log(this);
}
就能看出差别了。
new
做了三件事:
var instance = {};
instance.__proto__ = ShowUsers.prototype;
ShowUsers.call(obj);
简单来说,它改变了内部this
的指向(不适用new时,this
指向全局window
or global
),还有继承了原型链
function myFunction(){
console.log(this);
}
myFunction(); // this 指向 windows
new myFunction(); // this 指向 fn本身
你可以写一个h5测试一下
根据楼上的做了一下总结
function Show() {
this.name = 'test'
console.log(this)
}
var s = new show() // var obj = {}; obj.__proto__ = Show.prototype; Show.call(obj); s = obj
var s2 = show() // s2 = Show.call(null) s2为undefined, 且this.name中this指向window
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
题主可以先搜索一下js构造函数。