文档章节

js 的 prototype

 激进黄瓜酱
发布于 2016/06/26 21:31
字数 371
阅读 43
收藏 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
洛阳
jQuery命名冲突解决的五种方案

引言: 最近遇到个问题,同时引用了jquery库和另外一个js库。当用$XX去调用js库函数时,发现失效了!于是找资料,原来是jquery命名冲突了。因为许多JavaScript 库使用$作为函数或变量名,jqu...

龙上
2012/03/30
0
0
js中的prototype和构造函数

js中没有类的感念,继承也是通过原型链来实现的对象的继承而不是类的继承 Vjeux写的这篇文章应该能帮助我们更好的理解js中原型的工作方式:http://blog.vjeux.com/2011/javascript/how-proto...

leo-H
2013/04/08
0
0
美国主流网站所使用的JavaScript框架

作者:Pingdom时间:2008-10-04来自:翻译技术等级: 哪些JavaScript框架是最常见,使用最频繁的? 要回答这个问题,我们对大约200个美国主流网站进行了调研,检查他们是否使用了JavaScript框...

晨曦之光
2012/03/09
0
0
js prototype的理解

prototype属性可算是JavaScript与其他面向对象语言的一大不同之处。prototype就是“一个给类的对象添加方法的方法”,使用prototype属性,可以给类动态地添加方法,以便在JavaScript中实现“...

别人说我名字很长
2014/05/15
0
0
了解javascript编程中的Prototype(原型)

日期:2012-5-16 来源:GBin1.com 当你定义javascript方法的时候,会产生一些预定义的属性,其中一个比较让人迷惑的属性就是prototype。在本文中,我们将详细介绍什么是Prototype,并且为什么...

gbin1
2012/05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
44分钟前
0
0
Confluence 6 数据库和临时目录

数据库 所有的其他数据库,包括有页面,内容都存储在数据库中。如果你安装的 Confluence 是用于评估或者你选择使用的是 Embedded H2 Database 数据库。数据库有关的文件将会存储在 database...

honeymose
58分钟前
1
0
day62-20180820-流利阅读笔记

1.今日导读 2.带着问题听讲解 3.新闻正文(中英文对照) 4.重点词汇 5.拓展内容

aibinxiao
今天
0
0
分布式锁实现及对比

一、问题介绍 日常工作中很多场景下需要用到分布式锁,例如:任务运行(多个节点同一时刻同一个任务只能在一个节点上运行(分片任务除外)),交易接受(前端交易请求发送时,可能由于两次提...

yangjianzhou
今天
7
0
【AI实战】快速掌握TensorFlow(二):计算图、会话

在前面的文章中,我们已经完成了AI基础环境的搭建(见文章:Ubuntu + Anaconda + TensorFlow + GPU + PyCharm搭建AI基础环境),以及初步了解了TensorFlow的特点和基本操作(见文章:快速掌握...

雪饼
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部