function God(){}
function Foo(){
this.name="Foo~~";
}
Foo.prototype = new God();function Eoo(){
this.sex = "boy";
}
Eoo.prototype = new Eoo();var f1 = new Foo();
console.log(Foo.prototype); // God{}
console.log(typeof Foo.__proto__); // function
console.log(typeof f1); // object
console.log(f1.__proto__); // God{}
console.log(f1.__proto__.__proto__); // object{}
console.log(f1.__proto__.__proto__.__proto__) // nullvar f2 = new Eoo();
console.log(Eoo.__proto__); // function(){}
console.log(Object.__proto__); // function(){}
console.log(God.__proto__); // function(){}
// 因为Eoo(){},Object(){},God(){}都是由函数构造出来, Xxx.__proto__构造函数的原型对象var f2 = new Function();
console.log(Function.prototype); // function(){} f2有对象构造而来
console.log(typeof f2); // function
console.log(f2.__proto__); // function(){} f2.__proto__===Function.prototype
console.log(f2.__proto__.__proto__) // object{} f2.__proto__.__proto__===Object.prototype
console.log(f2.__proto__.__proto__.__proto__) // null// 原型对象也是对象啊,它的__proto__属性,又指向谁呢,同理,指向它的构造函数的原型对象。
// 即f2.__proto__.__proto__,这里是Object.prototype.
// JS中万物皆对象,故所有对象都有__proto__属性,这个用来指向该对象的构造函数
JS中的_proto_(2)
时间: 2024-12-16 15:54:45
JS中的_proto_(2)的相关文章
关于JS中原型链中的prototype与_proto_的个人理解与详细总结(代码示例+高清无码大图!——自备瓜子花生)
一直认为原型链太过复杂,尤其看过某图后被绕晕了一整子,今天清理硬盘空间(渣电脑),偶然又看到这图,勾起了点回忆,于是索性复习一下原型链相关的内容,表达能力欠缺逻辑混乱别见怪(为了防止新人__(此处指我)__被在此绕晕,图片就放在末尾了.) 以下三点需要谨记 1.每个对象都具有一个名为__proto__的属性: 2.每个构造函数(构造函数标准为大写开头,如Function(),Object()等等JS中自带的构造函数,以及自己创建的)都具有一个名为prototype的方法(注意:既然是方法,那么就
js中的new操作符
一.js中new操作符来声明一个对象:例如有如下一个实例function Person(){Person.prototype.fn=function(){console.log(1);}}var p=new Person(); 上例中使用new操作符来声明一个对象实际上是进行了三个动作: 1.var p={}; 2.p._proto_=Person.prototype; 3.Person.call(p); 二.以上的三个操作是在使用new操作符创建对象的时候实际执行的动作. 以上为本人对new操
《JS中的面向对象技术》
内容要点: 1.什么是对象:JS权威指南学习总结-第六章 ,(有句话:一切都是对象) 2.什么面向对象 使用对象时,只关注对象提供的功能,不关注其内部细节,比如jQuery.面向对象是一种通用思想,并非只有编程中使用,任何事情都可以用. 3.JS中面向对象三大特征: 封装.继承.多态 4.JS自定义对象(三大对象两大属性): 4.1创建对象方式:方法1:对象初始化的方法,就是通过对象直接量创建的对象.方法2:通过关键字new和构造函数的方法创建对象 4.2对象属性定义:私有属性.对象属性.类属性
JS 中 讨厌的 prototype constructor _pro_ 理解
这几天一直在看着块,哎,看的人头都大了,差不多明白了,总结一下. prototype:创建的每一个函数都有一个prototype属性,这个属性指向一个prototype对象.即他是通过构造函数而创建的实例对象的原型对象(属性存在于构造函数中). constructor:这个属性在原型对象中,指向函数中的prototype属性.(存在于原型对象中,原型对象===原型) _proto_:这个属相存在于实例中,指向原型. 举个栗子: function ljd(){ this.name="ljd&quo
JS中原型链的理解
在谈原型链之前,我们首先要了解自定义函数与 Function 之间是什么关系,而构造函数.原型和实例之间又存在什么千丝万缕的关系呢?其实,所有的函数都是 Function 的实例.在构造函数上都有一个原型属性 prototype,该属性也是一个对象:那么在原型对象上有一个 constructor 属性,该属性指向的就是构造函数:而实例对象上有一个 _proto_ 属性,该属性也指向原型对象,并且该属性不是标准属性,不可以用在编程中,该属性用于浏览器内部使用. 1 // _proto_ 2 在函
js中原型,原型链的学习与认识
原型的含义:如果构造器有个原型对象A,则由构造函数创建的实例都必然复制于A.原型也是一个对象,原型可以在运行时获得和改变.可以增加属性到原型上或者删除原型上已经存在的属性.原型对象是用来实现继承的. 2.prototype属性,是每个函数自带的属性,(所有类型的构造函数也是函数),prototype是一个包含constructor属性的Object对象,其中constructor属性保存了指向function的一个引用. 3.prototype上的属性可以被所有实例所共享,是因为每个实例都有一个
js 中 new 与 Object.create()的区别
前言 在js中,创建对象有三种方式 {} // 对象字面量 new Object() Object.create() 1和2的区别很小,1不能传参,2可以传参. new Object() 和Object.create() 区别就比较大了 1. new关键字 new 关键字做了几件事 创建一个新对象 将新对象的原型指向构造函数的原型 执行构造函数,绑定this 返回这个对象 比如创建一个Car对象,伪代码 // new Car() var obj = new Object() obj._proto
js中获取时间new date()的用法
js中获取时间new date()的用法 获取时间: var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 4 myDate.getDate(); //获取当前日(1-31) 5 myDate.getDay();
JS中的运算符&;JS中的分支结构
一.JS中的运算符 1.算术运算(单目运算符) + 加.- 减.* 乘./ 除.% 取余.++ 自增.-- 自减 >>> +:有两种作用,连接字符串/加法运算.当+两边全为数字时,进行加法运算: 当+两边有任意一边为字符串时,起连接字符串的作用,连接之后的结果为字符串 除+外,其余符号运算时,会先尝试将左右变量用Number函数转为数字 >>> /: 结果会保留小数点 >>> ++: 自增运算符,将变量在原有基础上+1: --: 自减运算符,将变量在原