JSOO--day01原型以及原型链

2023-12-03 11:08
文章标签 day01 原型 jsoo

本文主要是介绍JSOO--day01原型以及原型链,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,面向对象
面向对象:类和对象
类是对象的抽象,对象是类的实例

JavaScript原型对象(类) 和 实例对象;es6 以及推出了类,接口
特效:
封装:可重复调用,隐藏内部实现,暴露接口
继承:继承可以使用被继承对象的属性和方法
多态:个性
面向过程
自顶向下,逐步细化

2,JSOO 即JavaScript中实现面向对象的思想
基于原型的面向对象思维,‘原型对象’是基于原型语言的核心概念。
js中对象继承对象,而不是类继承类;
顶层对象是Object;

3,引用类型的拷贝
浅拷贝:复制内存地址(默认)
深拷贝:复制值(自己写)
数组深拷贝
var arr = [1,2,3,4,56];
var arr2=new Array();
/es6/arr2 = […arr];

for(var i=0;i<arr.length;i++){
arr2.push(arr[i]);
}

对象深拷贝
var obj = {name:‘张三’,age:18};
var obj2 = new Object();
for (var ker in obj){

obj2[key]=obj[key]

}

4,面向对象的回顾

所有对象的顶层对象是Object,Object的顶层为null;

js提供的原生对象:String,Array,Object,Function

对象声明:
1,var obj = new Object ();
2,var obj ={};
3,工厂模式
function createObject(){
var obj = new Object();
obj.xx
obj.xx=function(){}
return obj ;
}
4,构造函数
functtion fun (){
this.xxx;
this.xxx;
}

5,原型
Object的__peoto__就是null
如果想要给所有,都添加某个属性或者方法,就将对应属性或方法加在原型对象上

proto:任何对象都有找到__proto__,IE不支持

prototype:函数才有prototype,typeof返回的是function 那么它就有prototype属性

总结:
proto__是一个私有属性,用于追溯来源,js内部使用,但是IE不支持,而一般也不要使用私有变量
prototype:是专门的一个开发接口,可以自定义原型的属性和方法,
注:原型只是在new的时候上有一定的价值,原型链的本质是__proto

6.原型链
特点:对象在使用属性时,从自身开始一直向上找,找到了就不在向上了
想继承某个对象的属性和方法,把prototype指向对应的实例对象。
不管原型对象如何改变,自身的构造函数都会执行

原型对象:Dog.prototype
实例对象:new Dog ()
函数对象:Dog

7,作用域
变量作用域,函数作用域
变量和函数的提升(变量的声明和函数的定义,都会进行提升,提升到对应作用域的最前面)

2020/05/14 15:30

这篇关于JSOO--day01原型以及原型链的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/449213

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期,通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈,因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发一款机器人。项目经理希望确保在机器人被实际建造之前,团队能够收到关于需求的早期反馈并相应地调整设计。项目经理应该使用以下哪一项来实现这个目标?

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

javaweb-day01-7(XML 解析-案例)

1、以如下格式的exam.xml文件为例 exam.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?><exam><student examid="222" idcard="111"><name>张三</name><location>沈阳</location><grade>89.00</grade></student><st

javaweb-day01-6(XML 解析 - Jaxp的DOM方式解析)

Jaxp解析开发包     JAXP 开发包是J2SE的一部分,它由javax.xml、org.w3c.dom 、org.xml.sax 包及其子包组成  在 javax.xml.parsers 包中,定义了几个工厂类,程序员调用这些工厂类,可以得到对xml文档进行解析的DOM 或SAX 的解析器对象。   DOM解析方式: 步骤: 1.        调用javax.xml.

javaweb-day01-5(XML 解析-概述)

XML 解析:   (create  read  update  delete)   XML 解析方式有两种:DOM 和SAX   DOM(Document  Object  Model)基于树和节点的文档对象模型。w3c组织推荐的处理xml文档的一种方式。      *优点:crud方便,操作速度也特别快。       *缺点:耗内存,易导致内存溢出,不适合操作大的xml文档。

javaweb-day01-4(DTD 的语法)

XML 文件中 DOCTYPE 声明语句的格式: XML 文件使用 DOCTYPE 声明语句来指定它所遵循的 DTD 文件。 DOCTYPE声明语句有两种形式: 1.  当引用的约束文件在本地硬盘时,使用如下方式: <!DOCTYPE    xml文档根节点    SYSTEM    "dtd文档在本地的绝对路径或相对路径"> 例如:<!DOCTYPE 书架 SYSTEM "book

javaweb-day01-3(XML 的 dtd 约束)

XML 的约束方式有两种:dtd 和 schema  DTD约束: Document Type Definition    文档类型定义、文档类型界定。 入门示例: book.xml : <?xml version="1.0" encoding="gb2312"?><!DOCTYPE 书架 SYSTEM "book.dtd"><书架><书><书名>J

javaweb-day01-2(00:17:48 XML 的作用 和 语法)

XML: 描述 可扩展标记语言,w3c  2000年发布的 XML 1.0 版本规范。 用来描述数据之间的关系。 经常用作 软件  的配置文件,描述 模块与模块 之间的关系。 还用作    软件启动  的配置文件,描述 启动模块之间的 依赖 关系。 语法 一个XML文件分为如下几部分内容: 文档声明元素属性注释CDATA区、转义字符处

javaweb-day01-2(Junit测试工具用法)

JUnit 注释是给人看的,注解是给程序和编译器看的。 写好一个没有main函数的实体Person类,并且不想在main函数中来测试这个类中的方法: 我们一般使用JUnit测试: 建一个Junit.test包在这个包下建一个Junit test case,命名为PersonTest.java在Junit的测试用例PersonTest.java类中,建 testRun()、t