文档章节

javascript 相关知识要点摘要。

泡不烂的凉粉
 泡不烂的凉粉
发布于 2013/05/21 09:33
字数 593
阅读 22
收藏 2

一切皆为对象。

function 也是对象, 类型是 function, 原型是 Function(){};

hasOwnProperty函数:
hasOwnProperty是Object.prototype的一个方法,它可是个好东西,他能判断一个对象是否包含自定义属性而不是原型链上的属性,因为hasOwnProperty 是 JavaScript 中唯一一个处理属性但是不查找原型链的函数。

.prototype 属性:
对象的原型,指向对象的原型。 javascript 采用的是原型链集成方式。


.constructor 属性:
constructor 属性返回对创建此对象的数组函数的引用。

.constructor 的应用:
比如获取个目标对象一样的 对象,可以使用  new this.constructor(); 



instanceof 为判断一个对象是否为某一数据类型,或一个变量是否为一个对象的实例;返回boolean类型
语法为 o instanceof A

javascript中instanceof和类的细节

在javascript里,每个function都有一个prototype属性,这个属性的用途是实现继承机制。必如下面定义的function class1:
function class1(){}
class1.prototype = {a:10,b:100};
则class1的每个实例都会从prototype继承a和b这两个属性。

同时,每个对象都会有一个内部的属性_proto_(不同的javascript虚拟机实现用的名字可能不同),这个属性对js开发人员不可见,只在虚拟机内部使用。每当创建一个对象的时候,这个对象的_proto_就会被赋值为这个对象的构造函数的prototype,这样对象的_proto_属性和构造函数的prototype引用相同的对象,并且一旦对象创建完成,_proto_属性就不会改变。 这样通过对象的_proto_属性,以及_proto_所引用的对象的_proto_属性,就构成了一个_proto_链。 当访问一个对象的属性和方法的时候,js虚拟机正是通过这个_proto_链来查找的。

关于instanceof:
假设有一条这样的语句:
o instanceof c;
在上面的语句执行过程中,虚拟机会把c.prototype和o的_proto_链上的节点逐个进行比较,如果找到相等的节点,则返回true,否则返回false。

JavaScript中__proto__与prototype的关系一、所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function)
二、所有对象的__proto__都指向其构造器的prototype

© 著作权归作者所有

泡不烂的凉粉
粉丝 39
博文 16
码字总数 18217
作品 0
郑州
私信 提问
你可能不知道的 HTTP 协议

最近在项目中碰到了比较多 HTTP 相关的问题,小组对这些问题进行了学习和总结。 ch01. 跨域Ajax 背景小故事: 开放平台通过 JS 的方式将淘宝的核心功能集成到第三方网站。 而作为底层支持的 ...

oschina
2012/06/21
6.7K
17
javascript——从「最被误解的语言」到「最流行的语言」

JavaScript曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,...

modernizr
2014/05/20
1K
12
掌握这11项技能,你就是优秀的前端开发工程师

导读: 你也许会觉得前端开发是一个很简单的工作,对呀,你就是刚刚从网页设计转型过来的。但当你深入其中时,一定会发现好像前端开发不是那么简单,光网站性能优化、响应式、框架就让你焦头...

半饱即好
2018/06/26
0
0
重学前端学习笔记(四)--div和span不是够用吗?

笔记说明 重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系,笔者主要整理学习过程的一些要点笔记以及感悟,完整的可以加入w...

凯小默
04/27
0
0
掌握11项技能,你就是优秀的前端开发工程师

导读: 你也许会觉得前端开发是一个很简单的工作,对呀,你就是刚刚从网页设计转型过来的。但当你深入其中时,一定会发现好像前端开发不是那么简单,光网站性能优化、响应式、框架就让你焦头...

半饱即好
2014/05/14
3.1K
25

没有更多内容

加载失败,请刷新页面

加载更多

Git ssh配置

生成密钥对 ssh-keygen -t rsa -C "email@email.com"邮箱替换自己邮箱在地址C:\Users\账户\.ssh下,id_rsa、id_rsa.pub两个文件复制文件id_rsa.pub内容到github\gitlab的Settings-> SSH ......

JUKE
30分钟前
5
0
014、使用docker-compose安装软件

创建docker-compose基础目录 mkdir -p /usr/local/docker 1、安装mysql 在/usr/local/docker/目录下创建mysql目录 mkdir -p /usr/local/docker/mysql 在/usr/local/docker/mysql目录编写doc......

北岩
30分钟前
6
0
【并发那些事 】创建线程的三种方式

创建线程可以说是并发知识中最基础的操作了,JDK 提供的创建线程的方式,如果不包括通过线程池的话,目前有三种形式,它们分别是通过继承 Thread 类,通过实现 Runable 接口,通过 FutureTa...

K1W1
36分钟前
7
0
判断链表是否有环

如果列表中不存在环,最终快指针将会最先到达尾部,此时我们可以返回 false。 如果存在环则会相遇。返回true。 Java代码实现: public boolean hasCycle(ListNode head) { if (head == ...

无名氏的程序员
37分钟前
5
0
uni-app 项目记录

await 等候,等待;期待 什么是async、await await 用于等待异步完成 通常async、await都是跟随Promise一起使用的 async返回的都是一个Promise对象同时async适用于任何类型的函数上。这样awa...

达达前端小酒馆
39分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部