博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js面向对象1
阅读量:6520 次
发布时间:2019-06-24

本文共 1221 字,大约阅读时间需要 4 分钟。

1.在空白的Object上加属性和方法:    

上述的createPerson叫构造函数,只是因为它的作用就是构造一个对象,和普通函数并没有什么不同;

但是这个createPerson创建对象,有两个缺点:

1.没有new关键字;

2.每次创建一个对象,每个对象上都有自己的函数,如果调用了成百上千个createPerson的话,函数大量重复,占用系统资源大,浪费。

 

2.先解决没有new关键字:                    

 

3.解决资源浪费的问题;                    

在解决资源浪费问题之前,介绍prototype原型的概念:

原型:CSS                                                            JS                    class                  一次给一组元素加样式                        原型行间样式                一次给一个元素加样式                        给对象加东西.box{background:red;}

举个例子:数组是没有求和方法的,这里写一个求和方法:

但是只能弹出arr1的和,因为这里只是给了arr1加了sum方法,相当于行间样式一样,只是给了某一个对象单独添加了sum方法;

因此,如果要arr2也具有sum方法,这么做:

 把原型用到面向对象里面:这里把createPerson改成了Person类:

用构造函数加属性;
用原型加方法;
 
类似于Array、Date这种,说明它不是普通的函数,是构造函数,类名首字母一般大写;所以这里改成了Person;
 
 
 
 
4.json方式的面向对象:            
json:
简单
不适合多个对象
单体;
 
不适合Person这种需要构造很多的类;
但是适合比如ajax这种的,只需要一个发起请求的类;
 
Json:整个程序里只有一个;写起来比较简单;也可以用做命名空间;
     比如多个叫getUser的:json.common.getUesr;json.fx.getUser; json.site.getUser等..
 
5.js中的继承:                            
继承:父级的属性和方法
如何继承父级的属性呢?先讲下call方法;

于是继承的例子:

A.call(this), B从A哪里继承了属性;

B.prototype=A.prototype;B从A那里继承了方法;

 

但是上面的继承可能会有点问题:

B上面可能不光有从A哪里继承来的方法,也可能会有自己的方法;

怎么修改这个问题呢?下面:

 

转载于:https://www.cnblogs.com/tenWood/p/9048508.html

你可能感兴趣的文章
Security Identifiers | Win SRV2016 SID Change 修改
查看>>
看看来自日本的扫描,做网站需要注意的
查看>>
JDK 1.7+Android SDK+IntelliJ IDEA 13+Genymotion 安卓开发环境部署
查看>>
钓鱼邮件***防范指南
查看>>
session_start()放置位置的不正确引发的ROOT常量 未定义的错误
查看>>
如何设定VDP同时备份的任务数?
查看>>
ipsec的***在企业网中的经典应用
查看>>
过来人谈《去360还是留在百度?》
查看>>
mysql备份工具innobackupex,xtrabackup-2.1安装,参数详解
查看>>
【复制】slave筛选复制之二(create/drop table语句)
查看>>
Movie Store OpenCart 自适应主题模板 ABC-0249
查看>>
mytop-MySQL监控工具
查看>>
RedHat linux YUM本地制作源
查看>>
apache端口占用问题
查看>>
本地Office Project计划表同步到SharePoint2013任务列表的权限问题
查看>>
Windows2008 R2 GAC权限问题
查看>>
洛谷——P1469 找筷子
查看>>
codevs——1267 老鼠的旅行(棋盘DP)
查看>>
几句话就能让你明白:网络地址转换(NAT)
查看>>
C++实现链式堆栈
查看>>