Javascript中获取对象的原型对象的方法小结
在Javascript中,如果我们有一个对象但是又不知道它的构造函数时,如何获取它的原型对象呢?
在Chrome中或是FireFox浏览器中,我们可以直接使用对象的__proto__属性获取它的原型对象。
<!-- lang: js -->
function F(){};
var foo = new F();
alert(foo.__proto__ == F.prototype);
但是,__proto__属性在IE浏览器中一直到IE11才被支持。
那么在不支持__proto__属性的浏览器中,我们怎么得到对象的原型对象呢?可以通过constructor间接得到。
<!-- lang: js -->
function F(){};
var foo = new F();
alert(foo.constructor.prototype == F.prototype);
constructor属性不是对象自己的属性,而是顺着原型链向上从原型对象中获取的。这个属性指向的是这个原型对象所对应的构造函数。而构造函数的prototype属性指向了原型对象, 所以这样我们就可以间接得到了。
以上所述就是本文关于javascript中获取原型对象的全部内容了,希望大家能够喜欢。
相关推荐
-
js 原型对象和原型链理解
一个例子让你彻底明白原型对象和原型链 开篇 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就说明你没有真正的理解.最近正在读<Javascript高级程序设计>,书中对原型对象和原型链的描述让我受益匪浅,下面仅用一个对比性的例子来说明. 我们经常会这么写 function Person () { this.name = 'John'; } var p
-
深入理解javascript构造函数和原型对象
常用的几种对象创建模式 使用new关键字创建 最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function() { console.log(this.name + "said:love you forever"); } 使用字面量创建 这样似乎妥妥的了,但是宅寂的
-
javascript构造函数以及原型对象的理解
以下是一个构造函数的例子 如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的. //定义一个构造函数 function People(name,age){ this.name=name; this.age=age; this.dothings=function(){ retrun this.name+this.age; } } var people1 = new People("panda1",25); var people2 = new People("pan
-
JS原型对象通俗"唱法"
1.关于原型对象的重要知识点 首先要知道一个很重要的知识点,一句话:所有对象都有原型对象. 2. 对比其他语言的理解 原型对象,就是其它语言中的类中的静态属性和静态方法,总是是静态-static就对了.原理是: 内存中只有一份. 3. 在内存中的形象图: 首先,在产生js对象之前,我们需要创造一个构造函数(这都不知道,那就不要往下看了),如下: 复制代码 代码如下: function Person(name_, age_) { this.name = name_; this.age = age_
-
浅谈JS原型对象和原型链
在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对象都是普通对象. 举例说明: function f1(){ //todo } var f2 = function(){ //todo }; var f3 = new Function('x','console.log(x)'); var o1 = {}; var o2 = new Object();
-
Javascript 学习笔记之 对象篇(二) : 原型对象
Javascript 是唯一一个被广泛运用的原型式继承的语言,所以理解两种继承方式的差异是需要时间的. 第一个主要差异就是 Javascript 使用原型链来继承: function Foo() { this.value = 42; } Foo.prototype = { method: function() {} }; function Bar() {} 设置 Bar 的 prototype 为 Foo 的对象实例: Bar.prototype = new Foo(); Bar.prototy
-
图文详解JavaScript的原型对象及原型链
对于新人来说,JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张所谓很经典的图,上面画了各种线条,一会连接这个一会连接那个,说实话我自己看得就非常头晕,更谈不上完全理解了.所以我自己也想尝试一下,看看能不能把原型中的重要知识点拆分出来,用最简单的图表形式说清楚. 我们知道原型是一个对象,其他对象可以通过它实现属性继承.但是尼玛除了prototype,又有一个__
-
js使用原型对象(prototype)需要注意的地方
我们先来一个简单的构造函数+原型对象的小程序 function CreateObj( uName, uAge ) { this.userName = uName; this.userAge = uAge; } CreateObj.prototype.showUserName = function () { return this.userName; } CreateObj.prototype.showUserAge = function () { return this.userAge; } 这
-
JS原型对象的创建方法详解
本文实例讲述了JS原型对象的创建方法.分享给大家供大家参考,具体如下: 使用js的prototype属性的时候,创建对象的方式是存在优先级的 1.如果方法中存在构造方法就先使用方法中的构造方法 2.如果方法中不存在构造方法则继续查找prototype原型的构造方法 <html> <head> <TITLE>class_obj_js_class</TITLE> <script language=javaScript> function a(name
-
举例说明JavaScript中的实例对象与原型对象
首先声明:javascript中每个对象都有一个constructor属性和一个prototype属性.constructor指向对象的构造函数,prototype指向使用构造函数创建的对象实例的原型对象. function Person(){ } var person = new Person(); Person.prototype = { constructor : Person, name : 'zxs', age : 24, sayName : function(){alert(this
随机推荐
- c#几种数据库的大数据批量插入(SqlServer、Oracle、SQLite和MySql)
- java加载properties文件的六种方法总结
- JavaWeb文件上传下载功能深入分析(二)
- 解决Oracle RMAN删除归档日志不释放问题的方法
- thinkphp3.2嵌入百度编辑器ueditor的实例代码
- Python爬取京东的商品分类与链接
- VBS加密免杀器 下载
- Vue.js学习记录之在元素与template中使用v-if指令实例
- Linux系统下查看mysql版本的四种方法
- 详谈java中boolean和Boolean的区别
- Struts2学习笔记(2)-路径问题解决
- JavaScript基于ajax编辑信息用法实例
- 深入分析C++中deque的使用
- Android平台中实现数据存储的5种方式
- 简单的通用表达式求10乘阶示例
- iOS富文本的使用方法示例详解
- java分页工具类的使用方法
- 小试SVG之新手小白入门教程
- java_IO向文件中写入和读取内容代码实例
- 从vue源码看props的用法