js中的constructor 和prototype
参考 http://www.cnblogs.com/yupeng/archive/2012/04/06/2435386.html
function a(c){
this.b = c;
this.d =function(){
alert(this.b);
}
}
var obj = new a('test');
console.log(obj.constructor);//a的function
console.log(a);
结果都是
function a(c){
this.b = c;
this.d =function(){
alert(this.b);
}
}
function 里面包含了
- arguments: null
- caller: null
- length: 0
- name: ""
- prototype: Object
- __proto__: function Empty() {}
- <function scope>
- __proto__:
prototype 包含了2个属性,一个是constructor ,另外一个是__proto__
一个实例化的对象他的__proto__指向的是原始对象的prototype,所以constructor也过来了。
obj.constructor===a 是true,obj instanceof a 也是true。如下面所示。
可以这么说因为 obj.constructor===a 所以 obj instanceof a
a {b: "test", d: function}
b: "test"
d: function (){
__proto__: a
constructor: function a(c){
__proto__: Object
总结下,一个实例化的对象的constructor === 它的没有实例化的对象。
在arale源码里面调用父类方法,如下,他用到了constructor,this应该是实例化后的对象。this总是指向调用方法的对象,作为方法调用,那么this就是指实例化的对象。
// The created class constructor 创建一个类的构造函数
function SubClass() {
// Call the parent constructor.
parent.apply(this, arguments) // Only call initialize in self constructor.
if (this.constructor === SubClass && this.initialize) {
this.initialize.apply(this, arguments)
}
}
参考下:http://www.2cto.com/kf/201407/313470.html
js中的constructor 和prototype的更多相关文章
- 分析js中的constructor 和prototype
在javascript的使用过程中,constructor 和prototype这两个概念是相当重要的,深入的理解这两个概念对理解js的一些核心概念非常的重要. 我们在定义函数的时候,函数定义的时候函 ...
- 深入分析js中的constructor 和prototype
在javascript的使用过程中,constructor 和prototype这两个概念是相当重要的,深入的理解这两个概念对理解js的一些核心概念非常的重要. 我们在定义函数的时候,函数定义的时候函 ...
- 【JavaScript】关于JS中的constructor与prototype
最初对js中 object.constructor 的认识: 在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下 ...
- 【推荐】关于JS中的constructor与prototype【转】
最初对js中 object.constructor 的认识: 在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下 ...
- JS中的constructor与prototype
http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930548.html 在学习JS的面向对象过程中,一直对constructor与pr ...
- 关于JS中的constructor与prototype
======================================================================== 在学习JS的面向对象过程中,一直对constructo ...
- JS中的constructor 和 prototype
object.constructor :对象的constructor 属性引用了该对象的构造函数. //例如,用Array()构造函数创建了一个数组,那么a.constructor 引用的就是Arra ...
- js中关于constructor与prototype的理解
1.①__proto__和constructor属性是对象所独有的:② prototype属性是函数所独有的,因为函数也是一种对象,所以函数也拥有__proto__和constructor属性. 2. ...
- 关于JS中的constructor与prototype{转}
http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930548.html http://www.cnblogs.com/yupeng/a ...
随机推荐
- C#程序A调用程序B的问题
C#程序A调用程序B,如果程序B中存在 string path1 = System.Environment.CurrentDirectory; 程序A中开启B进程的代码为: System.Diagno ...
- spring在非容器管理的类里获取bean
package com.qmtt.tools; import org.springframework.beans.BeansException; import org.springframework. ...
- Git之master ->! [rejected] master (non-fast-forward)
出现这个情况可能是在克隆项目的时候强制关闭或者是在pull的时候强制关闭 运行命令:git pull --rebase origin master 然后就可以 git push origin mast ...
- 来,一起梳理下Android响应点击事件的方法
一.设置setOnClickListener 这应该是最原始的方法了吧,来,先上代码: 布局文件: <Button android:id="@+id/button1" and ...
- ios项目中引用其他开源项目
1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Libraries 引入.a文件.Target Depende ...
- sublime text3前端开发插件配置以及使用(个人喜爱)
第一步下载软件接着Ctrl +~ (回车)把下面安装包管理添加到sublimeimport urllib.request,os; pf = 'Package Control.sublime-packa ...
- COGS 1743. 忠诚
★ 输入文件:faithful.in 输出文件:faithful.out 简单对比时间限制:1 s 内存限制:256 MB [题目描述] 老管家是一个聪明能干的人.他为财主工作了整整1 ...
- (2)Ngixn 编译安装设置开机自启
设置nginx开机自启 #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 ...
- uva12105 Bigger is Better
更简单的做法:定义状态dp[i][j]表示在已经用了i根火柴的情况下拼出来了剩余部分(是剩余部分,不是已经拼出来了的)为j(需要%m)的最大长度,一个辅助数组p[i][j]表示状态[i][j]的最高位 ...
- HTTP隧道代理
reGeorg的前身是2008年SensePost在BlackHat USA 2008 的 reDuh延伸与扩展.也是目 前安全从业人员使用最多,范围最广,支持多丰富的一款http隧道.从本质上讲,可 ...