构造函数是用new创建对象时调用的函数,与普通唯一的区别是构造函数名应该首字母大写 function Person(age){ this.age = age; } var person1 = new Person(30); console.log(person1.age);//30 我们将Person.prototype定义为一个新对象,这个对象包含类所需要的方法。其实并没有必要新创建一个对象。任何javascript函数都可以用做构造函数,并且调用构造函数是需要用到一个prototype属性的。每个javascript函数都自动拥有一个prototype属性,这个属性的值是一个对象,这个对象包含唯一一个constructor,constructor属性的值则是一个函数对象。 来看一个例子: var Fun = function(){}; //函数对象 var pro = Fun.prototype; //函数对象Test相关联的原型对象 var con = pro.constructor; //原型对象相关联的函数 con === Fun; //true //对任意函数Fun.prototype.constructor === Fun。 由此可见构造函数的原型中存在预先定义好的constructor属性,这就意味着对象继承的constructor属性指代它们的构造函数 var obj = new Fun(); obj.constructor === Fun; 定义的Test类使用它自身的一个新对象重新写预定义的Person.prototype对象 Person.prototype = { constructor: Person, function(){ return this.age } }; 也可以这样写 Person.prototype = function(){return this.age;}//预定义的原型对象
js 类,构造函数和原型
猜你喜欢
转载自wangyuying.iteye.com/blog/2361684
今日推荐
周排行