博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript原型(prototype)小记
阅读量:6278 次
发布时间:2019-06-22

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

  hot3.png

一、对象的原型

1、通过构造函数,创建对象:

JavaScript对象的属性,是由自身属性加上原型链中的属性,对象的原型链是由创建它的构造函数决定的,也就是创建对象时,调用的new function,例如:

// 定义一个构造函数// JavaScript中构造函数和普通函数没区别,只是调用的时候使在前面加关键字new则为调用构造函数,不加则为普通调用// 构造函数约定使用大写字母开头(便于与普通函数的区分)function Foo() {}// 通过构造函数新建一个对象var foo = new Foo();

这时新建的foo对象将拥有Foo.prototype属性和自身的属性,假设属性重合,则采用就近原则,使用对象的属性

 

2、通过语法糖创建对象:

假设我们使用的是语法糖来创建对象的,底层其实也是调用构造函数来创建的

// 通过语法糖来创建对象var foo = { x: 1, y: 2 };// 等价于var foo = new Object();foo.x = 1;foo.y = 2;

也就是说使用语法糖来创建的对象,也默认继承了Object.prototype属性

 

3、对象默认继承的Object.prototype

另外所有的对象的原型都继承自Object.prototype,也就是在上面通过调用构造函数Foo()创建的对象除了继承了Foo.prototype,还继承了Object.prototype,如下所示:

Object.prototype.a = "Object.prototype.a";function Foo() {}Foo.prototype.b = "Foo.prototype.b";var foo = new Foo();foo.c = "foo.c";console.log("foo.a : " + foo.a);console.log("foo.b : " + foo.b);console.log("foo.c : " + foo.c);/*foo.a : Object.prototype.afoo.b : Foo.prototype.bfoo.c : foo.c*/

 

 

 

 

今天学习的先粗略写到这,改天有空再补充~

 

 

转载于:https://my.oschina.net/kolbe/blog/678691

你可能感兴趣的文章
HTML-color:rgb()-颜色渐进
查看>>
数据库实例: STOREBOOK > 表空间 > 编辑 表空间: UNDOTBS1
查看>>
Mcad学习笔记之异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)...
查看>>
Javascript防冒泡事件与Event对象
查看>>
managed domain与unmanaged domain
查看>>
《设计模式解析(第2版•修订版)》目录—导读
查看>>
Java核心技术卷I基础知识3.5.3 强制类型转换
查看>>
可与Mirai比肩的恶意程序Hajime,竟是为了保护IoT设备?
查看>>
《Spring Data 官方文档》6. Cassandra 存储库
查看>>
聊聊并发(十)生产者消费者模式
查看>>
R语言数据挖掘2.2.4.2 FP-growth算法
查看>>
人工智能概念诞生60年,哪些大牛堪称“一代宗师”?
查看>>
《游戏大师Chris Crawford谈互动叙事》一9.5 真实案例
查看>>
Java Cache系列之Guava Cache实现详解
查看>>
设计模式 - 适配器
查看>>
CSS之可折叠导航
查看>>
淘宝美工设计师细说何为天猫透明背景
查看>>
【B/S学习总结】我的第100篇CSDN博客
查看>>
[Hadoop]chukwa与ganglia的区别
查看>>
数据挖掘工具分析北京房价 (一) 数据爬取采集
查看>>