ITPub博客

首页 > 应用开发 > > javascript创建对象的几种方式你都会吗?

javascript创建对象的几种方式你都会吗?

作者:penny_liang 时间:2019-10-28 09:57:12 0 删除 编辑

无论前端还是后端,开发思想不外乎“面向过程”和“面向对象”。


javascript

如果需求简单,使用“面向过程”简单快捷,如果业务复杂,或需要后期功能扩展及维护方便,慢慢会发现,面向过程开发思路越来越不好使。

面向过程思路编程,不容易形成系统或架构,后期维护功能扩展成本较大,特别是解决代码重用以及“耦合”问题上,面向过程有些乏力。这些问题都可以通过面向对象编程解决,类,对象,继承……,高级程序员考核的就是架构能力,架构离不开设计模式,设计模式正需要面向对象思想。

我们平时工作中会用到很多优秀的插件,比如滚动插件,幻灯片插件,弹层插件等等,凡是喜欢研究的,都会发现这些插件都采用面向对象的思路来封装。

javascript是一门很特殊的语言,搞java和c#的小伙伴都知道一个对象就是一个类,通过关键词class来定义,但是javascript没有这个关键词,不过没有关系,javascript有自己创建对象的方式,下面我分别讲解如何创建类、类的属性和方法。

通过Object创建

输出结果:

鹅是程序猿

我找到工作了

我的爱好是编程

我会说话

通过”字面量“方式创建。

输出结果同上,平时工作中用得比较多。

这里say方法在对象创建后再创建的,和{}中创建效果一样,属性也可以用这种方式创建。

通过构造函数创建

当一个类需要创建多个实例的话,建议采用这种方式

注意需要用new关键词来创建对象的实例,这里和普通的函数调用方式有区别。

这里有个小技巧要说,建议用使用原型(prototype)定义方法,对象中的say方法改造如下:

...

Person.prototype.say=function(){

console.log("我会说话");

}

var A=new Person();

var B=new Person();

将方法定义到构造方法的prototype上的好处是,通过该构造函数生成的多个实例所拥有的方法都是指向一个函数的索引,这样可以节省内存,上面的例子中,实例A 和 实例B 都继承了say成员,并且是同一份,节省内存了空间。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/714/viewspace-3159998/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-12

  • 博文量
    189
  • 访问量
    1747