Hi,

Here is a pattern i'm using frequently:

var MyClass = (function() {
    var prototype = { /* shared attributes */ };
    var constructor = function () { /* instance properties and
bootstrapping */ };
    constructor.prototype = prototype;
    return constructor;
})();

In your case:

var Person =(function() {
    var prototype = { describe: function(){alert('NAME IS '+this.name)} };
    var constructor = function Person(name) { this.name = name; };
    constructor.prototype = prototype;
    return constructor;
})();
var jane = new Person('JANE');
var tarzan = new Person('TARZAN');
jane.describe();
tarzan.describe();

regards,
Cedric

2011/11/16 Evan James Bowling <[email protected]>:
> On Wed, Nov 16, 2011 at 7:03 AM, Rahul <[email protected]> wrote:
>>
>> hi friends,
>>
>> i went through "Douglas Crockford" book "Javascript : The good parts"
>>
>> and i rearranged the code as below and it worked,
>>
>>
>> (function(){
>>
>>        var personProto = {
>>                describe : function(){
>>                         alert("NAME IS "+this.name);
>>                }
>>        };
>>
>
> I like the part below, clever :)
>
>>
>>        if(typeof Object.createObj !== 'function'){
>>                Object.createObj = function(protoOfObj){
>>                        var F = function(){};
>>                        F.prototype = protoOfObj;
>>                        return new F();
>>                };
>>        }
>>
>>        var jane = Object.createObj(personProto);
>>        jane["name"] = "JANE";
>>
>>        var tarzan = Object.createObj(personProto);
>>        tarzan["name"] = "TARZAN";
>>
>>        jane.describe();
>>        tarzan.describe();
>>
>> })();
>>
>>
>> Thoughts on it please ,
>>
>> waiting for the reply
>>
>>
>> On Nov 16, 1:20 pm, Rahul <[email protected]> wrote:
>> > i removed the line
>> > __proto__ : personProto
>> >
>> > from both the object jane and tarzan, and i added
>> >
>> > Object.getPrototypeOf(jane) = personProto;
>> > Object.getPrototypeOf(tarzan) = personProto;
>> >
>> > but still at line
>> > jane.describe();
>> > i gives an error that "Object doesn't support this property or method"
>> >
>> > On Nov 16, 12:15 pm, Anoop Gupta <[email protected]> wrote:
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > > _prop_  property is deprecated and should not be used in new code: use
>> > >
>> > > Object.getPrototypeOf<https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/...>
>> > > instead.
>> > > Anyways this code is working.
>> > > tried it onhttp://jsfiddle.net/anoop/HfsKC/
>> >
>> > > -AG
>> >
>> > > On Wed, Nov 16, 2011 at 12:07 PM, Rahul <[email protected]>
>> > > wrote:
>> > > > (function(){
>> >
>> > > >        var personProto = {
>> > > >                describe : function(){
>> > > >                         alert("NAME IS "+this.name);
>> > > >                }
>> > > >        };
>> >
>> > > >        var jane = {
>> > > >                name : "JANE",
>> > > >                __proto__ : personProto
>> > > >        };
>> >
>> > > >        var tarzan = {
>> > > >                name : "TARZAN",
>> > > >                __proto__ : personProto
>> > > >        };
>> >
>> > > >        jane.describe();
>> >
>> > > > })();
>> >
>> > > > in the above code for the last line i am getting an error "Object
>> > > > doesn't support this property or method",
>> >
>> > > > But what i am expecting is object "jane" must inherit method
>> > > > describe
>> > > > from object "personProto"
>> >
>> > > > can anyone please help me out
>> >
>> > > > --
>> > > > To view archived discussions from the original JSMentors Mailman
>> > > > list:
>> > > > http://www.mail-archive.com/[email protected]/
>> >
>> > > > To search via a non-Google archive, visit here:
>> > > >http://www.mail-archive.com/[email protected]/
>> >
>> > > > To unsubscribe from this group, send email to
>> > > > [email protected]
>> >
>> > > --
>> > > Regards
>> > > Anoop K. Gupta
>>
>> --
>> To view archived discussions from the original JSMentors Mailman list:
>> http://www.mail-archive.com/[email protected]/
>>
>> To search via a non-Google archive, visit here:
>> http://www.mail-archive.com/[email protected]/
>>
>> To unsubscribe from this group, send email to
>> [email protected]
>
> --
> To view archived discussions from the original JSMentors Mailman list:
> http://www.mail-archive.com/[email protected]/
>
> To search via a non-Google archive, visit here:
> http://www.mail-archive.com/[email protected]/
>
> To unsubscribe from this group, send email to
> [email protected]
>

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/[email protected]/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/[email protected]/

To unsubscribe from this group, send email to
[email protected]

Reply via email to