博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中的constructor
阅读量:7274 次
发布时间:2019-06-29

本文共 1036 字,大约阅读时间需要 3 分钟。

定义和用法

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

语法

object.constructor


 

constructor属性
不影响任何JavaScript的内部属性。instanceof检测对象的原型链,通常你是无法修改的(不过某些引擎通过私有的__proto__属性暴露出来)。
constructor其实没有什么用处,只是JavaScript语言设计的历史遗留物。由于constructor属性是可以变更的,所以未必真的指向对象的构造函数,只是一个提示。不过,从编程习惯上,我们应该尽量让对象的constructor指向其构造函数,以维持这个惯例。
举个例子
var a,b;(function(){  function A (arg1,arg2) {    this.a = 1;    this.b=2;   }  A.prototype.log = function () {    console.log(this.a);  }  a = new A();  b = new A();})()a.log();// 1b.log();// 1

 通过以上代码我们可以得到两个对象,a,b,他们同为类A的实例。因为A在闭包里,所以现在我们是不能直接访问A的,那如果我想给类A增加新方法怎么办?

// a.constructor.prototype 在chrome,firefox中可以通过 a.__proto__ 直接访问a.constructor.prototype.log2 = function () {  console.log(this.b)}a.log2();// 2b.log2();// 2

  

通过访问constructor就可以了。 或者我想知道a的构造函数有几个参数?

 
a.constructor.length
或者再复杂点,我想知道a的构造函数的参数名是什么(angular的依赖注入就是通过此方法实现的据说)
a.constructor .toString() .match(/\(.*\)/) .pop().slice(1,-1) .split(',');// ["arg1", "arg2"]

 

原文:https://segmentfault.com/q/1010000000347868 

转载于:https://www.cnblogs.com/zhangym118/p/6088408.html

你可能感兴趣的文章
SAN存储方式之falconstor实施方案(1)
查看>>
LZO致力于解压速度的一种数据压缩算法
查看>>
巧用Netsh诊断命令解决网络疑难
查看>>
30.Silverlight中创建一个最简单的WCF RIA Services访问数据库实例
查看>>
组策略应用之一——软件分发
查看>>
CentOS系统启动流程你懂否
查看>>
Windows Phone 7 添加按钮的VSM状态分组
查看>>
文件夹的隐藏(六)
查看>>
[Unity3d]水果忍者-声音和刀光的实现
查看>>
pthread_mutex_t的静态初始化
查看>>
Redis实战(3)数据类型一Strings
查看>>
接口属性
查看>>
CCNA课堂练习一:路由器链路备份功能
查看>>
LAMP环境下ECShop系统部署
查看>>
在Sony VAIO VGN-UX27CN UMPC上安装Windows XP之经验谈
查看>>
Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)
查看>>
Windows Phone 7 软件体系结构
查看>>
SLC教程
查看>>
卡巴司机如此重大bug为何视而不改?
查看>>
关于AIX上裸设备表空间管理
查看>>