任何函数只要使用new操作符调用就是构造函数,而不使用new操作符调用的函数就是普通函数。
let Person = function(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
console.log(this.name)
}
}
//作为构造函数
let person = new Person("Nich",29,"Software Engineer");
person.sayName();
//作为函数调用
let o = new Object();
Person.call(o,"Kristen",25,"Nurse");
在调用一个函数而没有明确设置this值的情况下(既没有作为对象的方法调用,或者没有使用call()/apply()调用),this始终执行Global对象(在浏览器中就是window对象)。
call/apply区别:
apply传入this和数组,call传入this和参数列表。
Function.prototype.apply(thisArg,argumentsList)
Function.prototype.call(thisArg,...argumentsList)
博客介绍了JavaScript中函数调用的相关知识。使用new操作符调用的函数是构造函数,未使用则为普通函数。在未明确设置this值时,this指向Global对象(浏览器中为window对象),还说明了call和apply的区别,apply传入this和数组,call传入this和参数列表。
239

被折叠的 条评论
为什么被折叠?



