js构造函数

什么是构造函数?

view1

构造函数就是初始化一个实例对象,对象的prototype属性是继承一个实例对象。

view2:

不同于其它的主流编程语言,JavaScript的构造函数并不是作为类的一个特定方法存在的;当任意一个普通函数用于创建一类对象时,它就被称作构造函数,或构造器。一个函数要作为一个真正意义上的构造函数,需要满足下列条件:

1、 在函数内部对新对象(this)的属性进行设置,通常是添加属性和方法。

2、 构造函数可以包含返回语句(不推荐),但返回值必须是this,或者其它非对象类型的值。

举个例子

构造函数和普通函数啥关系?

举一个构造函数的例子
如下 Anima就是一个构造函数。Animal 本身是一个普通函数,但当通过new来创建对象时,Animal就是构造函数。

function Animal(name){
    this.name=name;
}

Animal.color="black";
 Animal.prototype.say = function(){
        console.log("I'm " + this.name);
 };
 
 var cat1=new Animal("cat");
 alert(cat1.name)//cat
    

JS构造函数及new运算符 - 一像素 - 博客园

可以从以下四个方面比较构造函数和函数的不同

image.png

命名上,构造函数首字母大写。
定义上,new关键字。
返回值上,构造函数是不需要用return显式返回值的,默认会返回this,也就是新的实例对象。
调用上,一般直接调用,构造函数采用关键字new调用。

存在的意义

如上述例子。在Javascript中, 通过new可以产生原对象的一个实例对象,而这个实例对象继承了原对象的属性和方法。因此,new存在的意义在于它实现了Javascript中的继承,而不仅仅是实例化了一个对象!

总结

构造函数和函数差别很大的,不要被名字误导!构造函数就是其他语言的类,至于js为啥不叫类,鬼知道

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容