文档章节

js 的 prototype

 激进黄瓜酱
发布于 2016/06/26 21:31
字数 371
阅读 43
收藏 0
点赞 0
评论 0

本文只是个人写的一些笔记 不做教学 也没资格教别人 如果有大神看到有什么不对的地方欢迎指正 自学坑很多

js对象分两种 一种是普通对象 一种是函数对象

//函数对象
function f1(){};
var f2 = function(){};
var f3 = new Function();

//普通对象
var o4 = {};
var o5 = new Object();
var o6 = new f1();

//验证
console.log(typeof f1);  //function
console.log(typeof f2);  //function
console.log(typeof f3);  //function
console.log(typeof o4);  //object
console.log(typeof o5);  //object
console.log(typeof o6);  //object

对象的prototype

console.log(typeof f1.prototype); //Object
console.log(typeof f2.prototype); //Object
console.log(typeof f3.prototype); //Object
console.log(typeof o4.prototype); //undefined
console.log(typeof o5.prototype); //undefined
console.log(typeof o6.prototype); //undefined

函数对象都有 prototype 属性 指向了一个Object(普通对象) 普通对象的prototype 指向了 undefined 也是原型的终点

单独说说Object Function两个对象 Function.prototype 还是 function 再往上 就是undefined 了

onsole.log(typeof Object); //function
console.log(typeof Function); //function
console.log(typeof Object.prototype); //object
console.log(typeof Function.prototype); //function
console.log(typeof Function.prototype.prototype); //undefined

理解一下这段代码


//定义一个函数o10
var o10 = function(){
  this.name = "haha";
}
//为函数的原型对象添加新属性
o10.prototype.say = function(){
  console.log(this.name);
}

//实例化函数对象 并调用方法 本身没有say 那么 调用原型的say
var o11 = new o10();
o11.say();  //haha

//定义一个函数o12 并制定 o12 的原型对象为 o11
var o12 = function(){};
o12.prototype = o11;

//实例化 o12 并调用say
var o13 = new o12();
o13.say();//haha

//为o12的原型添加新的say方法
o12.prototype.say = function(){
  console.log("iiiiiii");
}

o13.say();//iiiiiii

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 11
码字总数 5088
作品 0
洛阳
javascript面向对象中继承实现?

javascript面向对象中继承实现? 面向对象的基本特征有:封闭、继承、多态。 在JavaScript中实现继承的方法: 1. 原型链(prototype chaining) 2. call()/apply() 3. 混合方式(prototype和c...

lslaiwy ⋅ 06/05 ⋅ 0

全面解析JavaScript的对象创建和继承

阿里巴巴前端工程师逸翾对JavaScript中的对象进行了详细讲解。首先从理解对象谈起,说明了对象中的两个关键点key和prototype,其次介绍了对创建对象的三种方式,包括字面量、构造函数、Objec...

云迹九州 ⋅ 04/28 ⋅ 0

JavaWeb05-HTML篇笔记(一)

1.1上次课内容回顾: JQuery: JQuery的概述:是一个轻量级的JavaScript的类库.对JS进行封装. 常见的JS的框架: JQuery的使用: JQuery的选择器:(*) JQuery实现效果: JQuery样式操作: JQuer...

我是小谷粒 ⋅ 05/10 ⋅ 0

JavaScript 原型模式

普通对象 除了函数对象就是普通对象 2. 函数对象 函数对象本质上都是通过new Function()创造的 JavaScript内置有12个构造器/对象Number、Boolean、String、Object、Function、Array、RegExp、...

张泽立 ⋅ 05/21 ⋅ 0

这一次,我们换种姿势学习 javascript

前言 《你不知道的 javascript》是一个前端学习必读的系列,让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:“作用...

程序员解决师 ⋅ 05/29 ⋅ 0

JavaScript 数据类型判断

1.1 JavaScript 数据类型 简单数据类型(基本数据类型): Undefined ; Null ; Boolean ; Number ; String ; Symbol(ES6新增) 复杂数据类型:Object,Object 本质上是由一组无序的名值对组成...

piada ⋅ 05/18 ⋅ 0

ES6对对象的拓展(2018-05-08)

对象的传统表示法 let person = { "name":"张三", "say":function(){ alert("你好吗?"); } } ES6中的简洁写法 var name = "Zhangsan"; var age = 12; //传统的属性写法 var person = { "na......

a小磊_ ⋅ 05/10 ⋅ 0

用小猪佩奇说明Javascript的原型和原型链

  没错,我就是标题党!你已经成功被我骗进来了。来都来了,那就聊聊再走呗!接下来就听我一本正经地跟你说道说道。   Javascript的原型是这门语言的一个重点和难点。看过很多大佬写的解...

志如 ⋅ 05/10 ⋅ 0

JavaScript 原型及原型链简易理解

1.1 原型。 prototype: 每个函数对象都有自己的prototype属性,这个属性是一个指针,指向对象的原型对象,包含所有实例共享的属性和方法。 通过给原型添加属性和方法来可以给对象添加属性或...

piada ⋅ 05/18 ⋅ 0

JavaScript prototype 属性

prototype 属性允许您向对象添加属性和方法 , Prototype 是全局属性,适用于所有的Javascript对象。 给数组对象 扩充一个run方法,只要创建不同的实例对象都可以调用run这个方法 this是指向...

追逐iOS ⋅ 05/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 21分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 23分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 34分钟前 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 36分钟前 ⋅ 0

我的第一篇个人博客

虽然这是个技术博客,但是,我总是想写一些自己的东西,所有就大胆的在这里写下了第一篇非技术博客。技术博客也很久没有更新,个人原因。 以后自己打算在这里写一些非技术博客,可能个人观点...

Mrs_CoCo ⋅ 37分钟前 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 37分钟前 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 41分钟前 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 51分钟前 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 55分钟前 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部