ok im off. see you at home.

On Tue, Mar 1, 2011 at 4:01 PM, Jason Persampieri <ja...@persampieri.net>wrote:

> On Mon, Feb 28, 2011 at 9:26 PM, Michael Haufe (TNO) <
> t...@thenewobjective.com> wrote:
>
>> It doesn't make sense on Object.prototype. For example:
>>
>> Object.prototype.keys = function(){
>>    var ret=[],p;
>>    for(p in this)
>>        if(Object.prototype.hasOwnProperty.call(this,p))
>>            ret.push(p);
>>    return ret;
>> }
>>
>> function Employee(name){
>>    this.name = name;
>> }
>> Employee.prototype = {
>>    sayHello : function(){
>>       return "Hello! My name is "+ this.name;
>>    },
>>    job : "Engineer"
>> }
>>
>> var p = new Employee("Peter");
>>
>> console.log(p.keys().join());
>>
>
> this outputs the same thing as Object.keys(p).  Taken by itself, this
> doesn't convince me.
>
>
>> ---------------------------------------------------
>>
>> Also, what would be the point of using it on an Array?
>>
>> var p = ['a','b','c'];
>>
>> console.log(p.keys().join());  // 0,1,2
>>
>> --------------------------------------------------
>>
>
> Admittedly this seems weird.  More below.
>
>
>> Or a regular function?
>>
>> function foo() { this + " [stuff]" }
>>
>> console.log(foo.keys().join());
>>
>> --------------------------------------------
>>
>
> Not as convinced this is as weird.  What's wrong with enumerating the
> properties on a function?  What if the method in question were called
> 'properties' instead?  Would that make this less weird to you?
>
>
>> There is no point in augmenting every object in the language with
>> method(s) that have no meaning in that object's context
>>
>
> For a language where "everything is an object" (a construct I love), then
> it seems odd to differentiate between what is, in essence, a hash (which
> Object.keys is made for) and all other objects.  I'd rather be able to call
> the method in 'weird' ways than to start separating those.
>
> And what about all the other new ES5 methods: create, freeze,
> preventExtensions, etc?  These all seems perfectly reasonable to apply to
> arrays, functions, etc.
>
> That said, if this is inherently a decision to help interpreter performance
> or memory usage, then I really can't argue against that.
>
>  --
> To view archived discussions from the original JSMentors Mailman list:
> http://www.mail-archive.com/jsmentors@jsmentors.com/
>
> To search via a non-Google archive, visit here:
> http://www.mail-archive.com/jsmentors@googlegroups.com/
>
> To unsubscribe from this group, send email to
> jsmentors+unsubscr...@googlegroups.com
>

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/jsmentors@jsmentors.com/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/jsmentors@googlegroups.com/

To unsubscribe from this group, send email to
jsmentors+unsubscr...@googlegroups.com

Reply via email to