博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端初学者应该如何理解面向对象?
阅读量:5818 次
发布时间:2019-06-18

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

 对于面向对象很多初学者刚开始学习的时候会有很多疑惑而导致混淆,我总结了一些关于自定义函数,实例,原型对象的知识点。

一、自定义构造函数(可见)

1、构造函数和自定义构造函数的区别:

构造函数是通过调用内置构造函数创建对象的,而自定义构造函数是通过调用自己创建的函数创建对象的,调用方式不同。

2、构造自定义函数的执行步骤:

² 创建一个Object对象

² 将构造函数的this指向这个对象

² 执行构造函数中的代码

² 返回Object对象

3、约定:首字母大写

4、属性:prototype

5、关于this

函数是否用通过new调用

是:实例

否:(函数是否通过点语法调用)

是:指向(.)之前的对象

否:指向window

二、实例(可见)

1. 隐藏属性[[prototype]]该属性无法查看,但该属性指向原型对象

2. 实例.__proto__ 注意proto前后是两个杠 "_",输出控制台可以查看

三、原型对象(隐藏)

属性:

constructor 该属性的值是个对象,该对象就是自定义构造函数

相关的对象访问规则(为什么原型对象中的所有属性/方法能被所有的实例共享的原因)

当前对象->原型对象->Object的原型对象(Object.prototype),如果没有找到则就会得到undefined

综合案例:

实际开发中常用构造函数设置属性,原型对象设置方法这种组合当遇到,方法需要特殊处理时,可以把重名方法写到实例中去

例子:

function Person(name,age){//构造函数添加属性this.name = names;this.age = 22;}//原型对象添加方法Person.prototype.say = function(){console.log('超能说');}//实例var p1 = new Person();//特殊方法实例添加重名方法,它会先读取实例中的方法p1.say = function(){console.log('贼能说');}//此时调用p1的say方法只会输出贼能说,不会输出超能说复制代码

转载地址:http://yzzdx.baihongyu.com/

你可能感兴趣的文章
HBase–常用Shell操作篇
查看>>
100-85
查看>>
HDOJ 2011 多项式求和
查看>>
springboot日志
查看>>
sharepoint 2013/2016/2007 如何确定一个SharePoint列表的ID
查看>>
cisco路由器进入rommon模式
查看>>
hadoop 安装配置
查看>>
我的友情链接
查看>>
不建议频繁改动域策略
查看>>
实验3 信号
查看>>
C:int型指针
查看>>
Python time模块
查看>>
java:作用域
查看>>
计算机硬件结构及运行过程
查看>>
Linux密钥验证
查看>>
简单但很强大的javascript技巧
查看>>
linux下的python小程序——三角形面积
查看>>
Windows Server 2019 無法訪問【設置】的解決辦法
查看>>
ELK日志分析系统安装,多节点(二)
查看>>
步步为营 C# 技术漫谈 四、垃圾回收机制(GC) 上
查看>>