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 ...
随机推荐
- UML部署图介绍
https://www.w3cschool.cn/uml_tutorial/uml_tutorial-mi5w28ur.html
- keras启用tensorboard
在callback函数中添加tensorboard,启用tensorboard. # TensorBoard callback tensorboard_cb = K.callbacks.TensorB ...
- new Handler()和new Handler(Looper.getMainLooper())的区别是什么?
new Handler()和new Handler(Looper.getMainLooper())的区别是什么? 一.Handler的一些知识,new Handler()和new Handle ...
- Bitmap之getDensity和setDensity函数
package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...
- 25 Flutter仿京东商城项目 购物车页面布局
加群452892873 下载对应25课文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展. cupertino_icons: ^0.1.2 flutter_swi ...
- caffe dropout解读
先上caffe dropout_layer.cpp源码,如下: // LayerSetUp DCHECK(threshold_ > 0.); DCHECK(threshold_ < 1.) ...
- 【Leetcode_easy】762. Prime Number of Set Bits in Binary Representation
problem 762. Prime Number of Set Bits in Binary Representation solution1: class Solution { public: i ...
- Android Monkey压力测试(转)
参考链接:https://www.cnblogs.com/yyh8/p/6707745.html Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Andr ...
- FlappyBird
学习CocosCreator有段时间了,现在花了两天时间写了个像素鸟的小游戏,这个游戏之前又看到过,但是不知道怎么又下架了,之前还是蛮火的游戏,想起来后去网上看了看,原来是因为侵犯了 超级玛丽 的游戏 ...
- 解决X-Scan安装后“无法启动此程序,因为计算机丢失NPPTools.dll”
最近在一本书中看到X-Scan这个扫描器,虽说X-Scan相比现在的扫描器已经有点过时了,但也想下载来试一试,谁知道在VM中Win7安装时出现这种问题 可以在脚本之家找到缺失的这个文件:https:/ ...