校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > js语言和框架 > 语法相关-操作符相关
题目

普通函数与构造函数有什么区别?

解答

定义方式不同:普通函数通过 function fName(){ }来定义,函数名一般小写,内部一般都有返回值,使用时直接调用即可;构造函数使用 new 关键字 new Function FName()来定义,函数名一般大写,内部一般无返回值。

内部 this 指向不同:普通函数非严格模式指向 window,严格模式指向 undefined;构造函数内部 this 指向创建的对象实例本身。

返回值不同:普通函数使用 return 时, 返回具体返回值,无 return 时,返回 undefined;而构造函数一般无返回值,调用后返回实例本身,有返回值时,return 值类型时,返回忽略此值,return 引用类型时,返回该引用类型,而不是创建的实例本身。

// 普通函数
function foo() {
console.log(this === window); // 内部指向window
return 'foo';
}
console.log(foo()); // 返回返回值'foo'
// true
// 'foo'

// 构造函数
function Bar() {
this.name = 'bar';
console.log(this); //this指向实例本身:{name:'bar'}
}
var bar = new Bar();

console.log(bar); // 返回实例本身
console.log(bar.name); // 返回实例下的属性值

// {name:'bar'}
// {name:'bar'}
// 'bar'


C 1条回复 评论
公积金

我还是个菜鸟

发表于 2023-03-06 23:00:00
0 0