如何在其原型中设置对象值

时间:2015-06-15 17:42:04

标签: javascript

我试图在自己的原型中设置对象的值。 我找到了一些有用的代码:

Object.prototype.myFunction(){
    return 'It finally works!';
}
var i = 'hello world';
i = i.myFunction();
alert(i);

但似乎过分,我确信还有另一种方式。

我尝试过的事情并没有奏效:

Object.prototype.myFunction(){
    return 'It finally works!';
}
var i = 'hello world';
i.myFunction();
alert(i);

Object.prototype.myFunction(){
    this.randomVariable = 'temporary';
    this.randomVariable.parentNode = 'It finally works!';
}
var i = 'hello world';
i.myFunction();
alert(i);

甚至

Object.prototype.myFunction(){
    this = 'It finally works!';
}
var i = 'hello world';
i.myFunction();
alert(i);

有没有人为此找到解决方案?

2 个答案:

答案 0 :(得分:1)

首先,you don't want to extend the JavaScript native Object。其次,我不确定“过度”是什么意思,但是如果你想通过它的方法改变对象中属性的值,你可以这样做。请注意,我正在努力保持问题的本质:

var MyObj = function() {
 this.greet = 'It finally works!';
}

MyObj.prototype.myFunction = function() {
  this.greet = 'hello world!';
}

var i = new MyObj();
alert(i.greet);

//do whatever you want with this object i, when you're tired with it, you can call myFunction on it, and greet will change

i.myFunction();
alert(i.greet);

答案 1 :(得分:0)

实际上没有办法在其中一个方法中更改对象的值。你找到的代码是你做你想做的事情的方式。鉴于此,我只是将myFunction作为自己的函数,而不必费心将其设置为object的原型。