我有一个带有两个函数的js对象。从mySecondFunction()
致电myFirstFunction()
的正确方法是什么?应该是this.mySecondFunction()吗?还是MyObject.mySecondFunction()?
我以为我会使用“this”,但如果它在Event处理程序中,那么“this”指的是DOM元素而不是对象:(
var MyObject = {
firstFunction: function() {
whatgoeshere???.mySecondFunction();
},
secondFunction: function() {
console.log('Hi!');
}
}
答案 0 :(得分:1)
var MyObject = {
firstFunction: function() {
this.mySecondFunction();
},
secondFunction: function() {
console.log('Hi!');
},
mySecondFunction: function() {
alert('Hi!');
}
}
MyObject.firstFunction();
以上是您打算做的事情。
//declaring the constructor
function MyObject() {
this.someProperty = 'whatever';
}
// declaring instance methods
MyObject.prototype = {
firstFunction: function () {
this.secondFunction();
},
secondFunction: function () {
alert("Cool");
}
};
var am = new MyObject();
am.firstFunction();
使用原型对象定义类型的方法也是一个好主意,原型对象是构造函数的属性。 this
的值将是您尝试初始化的新对象。
答案 1 :(得分:0)
在这种情况下,它是MyObject,因为它不是实例。
如果你做过类似的事情:
var MyObject = function() {
};
MyObject.prototype.firstFunction = function() {
this.secondFunction();
};
MyObject.prototype.secondFunction = function() {
console.log('Hi!');
};
var instance = new MyObject();
instance.firstFunction();
然后,您创建一个新实例并可以使用this
。换句话说:this
引用对象的当前实例