Javascript构造函数学习

我们经常会用JS的构造函数实现Java语言中的继承,今天整理一下构造函数的相关属性及说明。
下面定义一个构造函数:
1
2
3
4
5
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
构造函数
 
通过上述实例理解主要属性的使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//创建Person的原型
Person.prototype = {
    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构造函数学习,布布扣,bubuko.com

Javascript构造函数学习

上一篇:有关Spring对象的创建---getBean(‘‘beanName“)


下一篇:10个月,15亿,阿里云如何赋能企业打造交付和创新竞争力