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中获取原型对象的全部内容了,希望大家能够喜欢。
相关推荐
-
举例说明JavaScript中的实例对象与原型对象
首先声明:javascript中每个对象都有一个constructor属性和一个prototype属性.constructor指向对象的构造函数,prototype指向使用构造函数创建的对象实例的原型对象. function Person(){ } var person = new Person(); Person.prototype = { constructor : Person, name : 'zxs', age : 24, sayName : function(){alert(this
-
深入理解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的原型对象及原型链
对于新人来说,JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张所谓很经典的图,上面画了各种线条,一会连接这个一会连接那个,说实话我自己看得就非常头晕,更谈不上完全理解了.所以我自己也想尝试一下,看看能不能把原型中的重要知识点拆分出来,用最简单的图表形式说清楚. 我们知道原型是一个对象,其他对象可以通过它实现属性继承.但是尼玛除了prototype,又有一个__
-
JS原型对象的创建方法详解
本文实例讲述了JS原型对象的创建方法.分享给大家供大家参考,具体如下: 使用js的prototype属性的时候,创建对象的方式是存在优先级的 1.如果方法中存在构造方法就先使用方法中的构造方法 2.如果方法中不存在构造方法则继续查找prototype原型的构造方法 <html> <head> <TITLE>class_obj_js_class</TITLE> <script language=javaScript> function a(name
-
浅谈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构造函数以及原型对象的理解
以下是一个构造函数的例子 如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的. //定义一个构造函数 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使用原型对象(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; } 这
-
Javascript 学习笔记之 对象篇(二) : 原型对象
Javascript 是唯一一个被广泛运用的原型式继承的语言,所以理解两种继承方式的差异是需要时间的. 第一个主要差异就是 Javascript 使用原型链来继承: function Foo() { this.value = 42; } Foo.prototype = { method: function() {} }; function Bar() {} 设置 Bar 的 prototype 为 Foo 的对象实例: Bar.prototype = new Foo(); Bar.prototy
-
JS原型对象通俗"唱法"
1.关于原型对象的重要知识点 首先要知道一个很重要的知识点,一句话:所有对象都有原型对象. 2. 对比其他语言的理解 原型对象,就是其它语言中的类中的静态属性和静态方法,总是是静态-static就对了.原理是: 内存中只有一份. 3. 在内存中的形象图: 首先,在产生js对象之前,我们需要创造一个构造函数(这都不知道,那就不要往下看了),如下: 复制代码 代码如下: function Person(name_, age_) { this.name = name_; this.age = age_
-
js 原型对象和原型链理解
一个例子让你彻底明白原型对象和原型链 开篇 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就说明你没有真正的理解.最近正在读<Javascript高级程序设计>,书中对原型对象和原型链的描述让我受益匪浅,下面仅用一个对比性的例子来说明. 我们经常会这么写 function Person () { this.name = 'John'; } var p
随机推荐
- C# 8.0新特性介绍
- zepto.js中tap事件阻止冒泡的实现方法
- Python正确重载运算符的方法示例详解
- iOS点击推送消息跳到应用指定页面方法
- Silverlight中动态获取Web Service地址
- 两个JavaScript jsFiddle JSBin在线调试器
- IIS7中ASP.net 请求处理过程说明
- 深入理解NumPy简明教程---数组3(组合)
- Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
- c#实现51单片机频率计的代码分享(数字频率计设计)
- PHP下10件你也许并不了解的事情
- js判断滚动条是否已到页面最底部或顶部实例
- setInterval和setTimeout停止的方法
- 使用ASP删除指定IIS站点
- qq登录,新浪微博登录接口申请过程中遇到的问题
- 比较精简的Javascript拖动效果函数代码
- Android Listview点赞问题关于图片重复问题
- javascript中文本框中输入法切换的问题
- Android创建简单发送和接收短信应用
- Python基于pillow判断图片完整性的方法