• Javascript构造函数学习


    我们经常会用JS的构造函数实现Java语言中的继承,今天整理一下构造函数的相关属性及说明。
    下面定义一个构造函数:
    function Person(name, sex, age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    

      

    以上面这个构造函数为例梳理一下构造函数的相关属性,如下表:
    属性名
    说明
    __defineGetter__ 用于追加定义getter方法,继承自Object
    __defineSetter__
    用于追加定义setter方法,继承自Object
    __lookupGetter__
    获取getter属性,ES5 getOwnPropertyDescriptor
    __lookupSetter__
    获取setter属性,getPrototypeOf
    apply、call、bind
    调用当前方法,以另外的对象替代当前对象
    aguments
    调用该函数时传入的参数
    caller
    获取调用当前函数的函数
    length
    获取为一个函数定义的参数数目
    name
    函数名称
    propertyIsEnumberabel
    属性是否可枚举
    prototype
    输出格式是构造函数名 原型
    toLocaleString
    转化成本地化字符串
    toString
    转化成字符串
    valueOf
    转化成原始值(string number null undefined boolean)
    __proto__
    原型链:私有属性(FF暴露为共有属性):实例化对象拥有该属性
    constructor
    构造函数
     
    通过上述实例理解主要属性的使用:
    //创建Person的原型
    Person.prototype = {
      construtor: Person,
        sayHello: function() {
            alert('Hello');
        }
    }
    //实例化,可以实例化多个对象
    var danny = new Person('Danny', 'male', 18);
    var jenny = new Person('Jenny', 'female', 24);
     
    Person.prototype.isPrototypeOf(danny) //true,说明danny继承了Person的属性
    danny .constructor //Person
    Person.constructor //Function
     
    var tom = {};
    danny.sayHello.apply(tom); //tom也能使用danny的sayHello
     
    danny.__proto__ == Person.prototype //__proto__ 可以理解为对象的父对象
    

      

     
    想要了解更加详细的讲解,可以查看参考资料的讲解~
     
    参考资料:
    http://msdn.microsoft.com/zh-cn/library/x844tc74(v=vs.94).aspx
    http://www.douban.com/note/293217333/
     
  • 相关阅读:
    C# 模式&模式匹配
    CentOS7下安装 dotnet sdk
    PLSQL 设置
    Visual Studio Code 开发 .NetCore 插件列表
    .net core 服务生命周期
    从 Asp.Net Core 2.2 迁移到 3.0 的方案
    CSRedisCore 介绍
    Entity Framework 命令
    DataAnnotations 模型配置
    依赖注入学习(理论)
  • 原文地址:https://www.cnblogs.com/xiaoheimiaoer/p/3661565.html
Copyright © 2020-2023  润新知