使用new是构造函数,不使用new是函数调用,同时this指向不同。
示例:
function test(name, age, job) {
console.log(this);
this.name = name;
this.age = age;
this.job = job;
}
1、直接调用函数
var test1 = test('tom', 27, 'it');
来看下test2的值:
2、使用new构造函数
var test2 = new test('tom', 27, 'it');
来看下test1的值:
最后得出一个猜测:
如果函数返回值为常规意义上的值类型(number、string、boolean)时,new 函数将会返回一个该函数的实例对象,而如果函数返回一个引用类型(object、array、function),虽然new函数与直接调用函数产生的结果等同,但是是两个不同的过程,一个是构造对象、一个是函数调用。
如对本文有疑问, 点击进行留言回复!!
offset、client、scroll (width,height、left,top、X,Y)
网友评论