首页 > 编程语言 > 详细

JavaScript Patterns 3.2 Custom Constructor Functions

时间:2014-05-30 00:15:29      阅读:439      评论:0      收藏:0      [点我收藏+]

When you invoke the constructor function with new, the following happens inside the function:

? An empty object is created and referenced by this variable, inheriting the prototype of the function.

? Properties and methods are added to the object referenced by this.

? The newly created object referenced by this is returned at the end implicitly (if no other object was returned explicitly).

bubuko.com,布布扣
var Person = function (name) {

    this.name = name;

    this.say = function () {

        return "I am " + this.name;

    };

};   

var adam = new Person("Adam");

adam.say(); // "I am Adam" 
bubuko.com,布布扣

Note

reusable members, such as methods, should go to the prototype.

Person.prototype.say = function () {

    return "I am " + this.name;

};

Constructor‘s Return Values

When invoked with new, a constructor function always returns an object inheriting from the constructor‘s prototype.

bubuko.com,布布扣
var Objectmaker = function () {

    // this `name` property will be ignored

    // because the constructor

    // decides to return another object instead

    this.name = "This is it";

    // creating and returning a new object

    var that = {};

    that.name = "And that‘s that";

    return that;

};

// test

var o = new Objectmaker();

console.log(o.name); // "And that‘s that"   
bubuko.com,布布扣

You have the freedom to return any object in your constructors, as long as it‘s an object. Attempting to return something that‘s not an object (like a string or a boolean false, for example) will not cause an error but will simply be ignored, and the object referenced by this will be returned instead.

JavaScript Patterns 3.2 Custom Constructor Functions,布布扣,bubuko.com

JavaScript Patterns 3.2 Custom Constructor Functions

原文:http://www.cnblogs.com/haokaibo/p/Custom-Constructor-Functions.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!