JS中的原型对象与构造器
在Javascript中:
原型对象是属于构造函数的,不属于实例;
实例只能共享原型对象中的属性和方法(当然也可以有自己的属性和方法,或者覆盖原型中同名的属性和方法);
构造器constructor属于原型的,不属于实例;
实例之所以能有constructor属性是因为它共享了原型对象的所有成员,包括原型对象的constructor属性;
function Wede(){this.name="zhao"}
//输出构造函数的原型对象
console.log(Wede.prototype); //Wede {}
//给构造函数的原型对象增加成员属性
Wede.prototype.Sex="man"; //"man"
//new一个实例
var zw=new Wede();
//输出构造函数的原型对象的constructor属性
Wede.prototype.constructor; //function Wede(){this.name="zhao"}
//然而,当我们查看构造函数的constructor属性时,它输出的是Function构造器
Wede.constructor; //function Function() { [native code] }
//输出实例共享了原型对象的constructor属性;
//可以看出,和Wede.prototype.constructor;的输出是一致的。
zw.constructor; //function Wede(){this.name="zhao"}
//当new一个实例后,该实例内部将包含一个指针(内部属性)[[Prototype]](或者叫做_proto_),用于指向构造函数的原型对象;
//但是这个指针在脚本中是不可见的,以下示例证明了这一点;
//不过,要明确的一点就是,这个指针存在于实例与构造函数的原型对象之间,而不是实例与构造函数之间;
zw._proto_; //undefined
zw.[[Prototype]]; //SyntaxError: Unexpected token [...
//isPrototypeOf方法用来确定实例本身拥有的[[Prototype]]内部属性与构造函数的原型对象是否相等。
//这个方法具体还有什么用处,有待补充......
Wede.prototype.isPrototypeOf(zw); //true
JS中的原型对象与构造器的更多相关文章
- 浅谈JS中的原型对象和原型链
我们知道原型是一个对象,其他对象可以用它实现属性继承,除了prototype,又有__proto__ 1. prototype和__proto__的区别 prototype是函数才有的属性 ...
- js中的原型对象链
由于原型对象也是一个对象,它也有自己的原型对象并继承对象中的属性,这就是原型对象链:对象继承其原型对象,而原型对象继承它的原型对象,以此类推. 我们创建的每一个函数都有一个prototype(原型)属 ...
- 谈谈JS中的原型
不知道大家对JS中的原型理解的怎么样,我想如果大家对JS中的原型对象以及prototype属性十分熟悉的话对后面原型链以及继承的理解会十分的容易,这里想和大家分享自己对其的理解,请先看下面这段代码O( ...
- js中的原型、继承的一些想法
最近看到一个别人写的js类库,突然对js中的原型及继承产生了一些想法,之前也看过其中的一些内容,但是总不是很清晰,这几天利用空闲时间,对这块理解了一下,感觉还是有不通之处,思路上没那么条理,仅作为分享 ...
- js中两个对象的比较
代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...
- js中关于Blob对象的介绍与使用
js中关于Blob对象的介绍与使用 blob对象介绍 一个 Blob对象表示一个不可变的, 原始数据的类似文件对象.Blob表示的数据不一定是一个JavaScript原生格式 blob对象本质上是 ...
- JS中的event 对象详解
JS中的event 对象详解 JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...
- MVC中处理Json和JS中处理Json对象
MVC中处理Json和JS中处理Json对象 ASP.NET MVC 很好的封装了Json,本文介绍MVC中处理Json和JS中处理Json对象,并提供详细的示例代码供参考. MVC中已经很好的封装了 ...
- js中的json对象详细介绍
JSON一种简单的数据格式,比xml更轻巧,在JavaScript中处理JSON数据不需要任何特殊的API或工具包,下面为大家详细介绍下js中的json对象, 1.JSON(JavaScript Ob ...
随机推荐
- OpenJudge计算概论-奥运奖牌计数
/*===================================================================== 奥运奖牌计数 总时间限制: 1000ms 内存限制: 6 ...
- body-parser 解析post数据
安装 $ npm install body-parser API var bodyPaeser =require('body-parser') bodyParse.raw(option) 将请求体内容 ...
- 【分类算法】朴素贝叶斯(Naive Bayes)
0 - 算法 给定如下数据集 $$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},$$ 假设$X$有$J$维特征,且各维特征是独立分布的,$Y$有$K$种取值.则 ...
- CentOS7下搭建zabbix监控(三)——Zabbix监控服务配置
CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置 (1).配置Zabbix监控Apache服务 主机名:yo ...
- JavaScript正则表达式补充
定义正则表达式 /.../用于定义正则表达式 /.../g表示全局匹配 /.../i表示不区分大小写 /.../m表示多行匹配 JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m ...
- VCL组件之TPanel
TPanel位于Standard组件面板上,也是常用的一种容器控件.面板的一个优点就是放在面板上的组件称为面板的一部分,因此它们与面板一起移动.这在设计阶段很有用. Panel组件的大部分功能在于其A ...
- 基于OpenAM系列的SSO----基础
基于OpenAM系列的SSO----基础 OpenAM简介:OpenAM是一个开源的访问管理.授权服务平台.由ForegeRock公司发起.OpenAM前身为OpenSSO,由SUN公司创建,现在 ...
- 动态PHP电商网站伪静态的 Nginx反向代理Cache缓存终极设置
转自: http://www.ttlsa.com/nginx/dynamic-php-nginx-cache/
- MySQL创建触发器样例
# init DROP TABLE IF EXISTS students; DROP TABLE IF EXISTS class; # 创建测试用的班级表 CREATE TABLE class ( c ...
- CSS3 @font-face详细用法
@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体就不用再为只能使用Web安全字体烦恼了!肯定 ...