我试图在自己的原型中设置对象的值。 我找到了一些有用的代码:
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);
有没有人为此找到解决方案?
答案 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
的原型。