zoukankan      html  css  js  c++  java
  • Js中找任意对象的原型方法及改造原型

         Java中有运行时类型识别,js可以很方便的模仿这个特性,因为所有js对象都有一个属性constructor(构造器),表示这个对象的构造方法,原型与构造方法同名,所以可以通过这儿知道任意对象的原型名称。具体可以看代码(这里简单的封装了):

    function runToChain(obj){
        var chainName=obj.constructor.name;
    console.log(chainName); return chainName; }

      自定义的fn函数(非匿名函数即构造函数),会按照一定的规则生成prototype属性,这个属性指向其原型。生成的实例对象会生成指针指向fn.prototype(实际完全可以等同看作指向其原型,原型只可以通过fn.prototype形式进行表示),所以原型链可以简单地看作实例指向原型。fn()为自定义的构造函数,产生时即产生原型。通过fn.prototype即可改造原型,例:fn.prototype.name="",即为原型添加了一个name属性。

          当fn.prototype=new someObj()时,可以理解成new someObj()将指向其原型someObj的指针复制给了原型fn.prototype,所以fn.prototype的实例可以访问someObj构造函数中的属性及方法(原型的属性和方法即构造函数中的属性及方法),实现继承。以此逻辑递推,原型链被延伸。

  • 相关阅读:
    ASP.NET MVC2 第四章Ⅱ
    关于Windows 7硬盘安装方法大全
    新手看Lambda
    ASP.NET MVC2 第五章Ⅲ
    守护线程
    双鱼
    信号量与互斥锁
    public,private,protected访问权限在Java,C++中的解析
    final in java
    Java code standard
  • 原文地址:https://www.cnblogs.com/zhu-xingyu/p/5267450.html
Copyright © 2011-2022 走看看