我们经常会用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/
 

Javascript构造函数学习的更多相关文章

  1. JavaScript构造函数学习笔记

    1 理解Javascript constructor实现原理 在 JavaScript 中,每个函数都有名为“prototype”的属性,用于引用原型对象.此原型对象又有名为“constructor” ...

  2. JavaScript构造函数学习笔记分享

    构造函数就是一个普通的函数,创建方式和普通函数没有区别 不同的是构造函数名习惯上首字母大写 普通函数是直接调用,而构造函数需要使用new关键字来调用 构造函数的执行流程: 立刻创建一个新的对象 将新建 ...

  3. JavaScript紧凑学习

    JavaScript紧凑学习 windows本地,调用命令行: win键+R 键入cmd , (cmd是Command 命令行 简称) 目录是C盘下的 C:\Users\Administrator&g ...

  4. javascript正则表达式 - 学习笔记

    JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...

  5. Javascript的学习清单

    Javascript的学习清单 Javascript学习资源 程序员必读书籍 深入理解JavaScript系列 es6教程 jQuery中文文档 vue官网 zeptojs中文版 常用的插件与UI组件 ...

  6. JavaScript 核心学习——继承

    本篇博文讲述如何在 JavaScript 中实现继承,以及原型与原型链的知识,在附录中将会讲述 JavaScript 面向对象的常见错误. ##原型与原型链在 JavaScript 中,使用类将会付出 ...

  7. 正则表达式(javascript)学习总结

    正则表达式在jquery.linux等随处可见,已经无孔不入.因此有必要对这个工具认真的学习一番.本着认真.严谨的态度,这次总结我花了近一个月的时间.但本文无任何创新之处,属一般性学习总结. 一.思考 ...

  8. JavaScript 构造函数

    关于JavaScript构造函数,如今出现了很多JavaScript的框架,例如jQuery.Ext等等这些,这些将JavaScript作为一种面向对象的语言进行编程,那么JavaScript到底是怎 ...

  9. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

随机推荐

  1. pyqt之倒计时例子

    from PyQt4.Qt import *from PyQt4.QtCore import *from PyQt4.QtGui import *import sysdef main():    a= ...

  2. Android自定义控件(一)——开关控件

    Google 在 API 14 开始才新增了Switch 控件. 因此,我们可以选择自己封装一个Switch . 效果如图: View主要代码: public class SwitchView ext ...

  3. public,private,protected的区别

    一,public,private,protected的区别public:权限是最大的,可以内部调用,实例调用等.protected: 受保护类型,用于本类和继承类调用.private: 私有类型,只有 ...

  4. 如何把java代码转换成smali代码

    1.概述 Smali是Android系统中Dalvik虚拟机指令语言,在apk逆向过程中有许多工具可以把smali代码转化成java代码.但是在学习Smali语法的过程中,有时候需要进行java代码和 ...

  5. 获取sqlserver数据库中所有库、表、字段名的方法

    获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...

  6. Socket与TcpClient的区别(转载)

    Socket和TcpClient有什么区别 原文:http://wxwinter.spaces.live.com/blog/cns!C36588978AFC344A!322.entry 回答: &qu ...

  7. MVC5移除不常用Nuget命令

    ---移除JQuery.* 和bootstartp Uninstall-Package bootstrap Uninstall-Package Microsoft.jQuery.Unobtrusive ...

  8. (转)Web.config配置文件详解(新手必看)

    花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <? ...

  9. iOS_SN_Socket网络编程(一)

    1.Socket简介 首先让我们通过一张图知道socket在哪里? socket在哪里 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口. 2.TCP和UDP的区别 在这里就 ...

  10. struts2 MessageStoreInterceptor 拦截器的使用

    MessageStoreInterceptor 拦截器可以把和该 Action 相关的 messages, errors 和 field errors(下称 "消息") 保存到 s ...