是否可以这样做:
var hammer = new Hammer(); // create a new instance
hammer(nail); // really call Hammer.prototoype.hit(object);
我可以在原始对象上弄清楚,但在创建对象的新实例时却不行。这就是我遇到的问题:
function Hammer(options) {
this.config = options.blah;
this.hit(/* ? */);
return this;
}
Hammer.prototype.hit = function(obj) {
// ...
}
当我调用构造函数时,我想传递特殊选项 - 而不是要敲什么钉子。但是,稍后调用时,我想传入一个钉子。我错过了一些东西。
最佳答案
一个解决方案是根本不创建构造函数:
var hammer = newHammer();
hammer(nail);
hammer.clean();
function newHammer(options) {
var config = options.blah;
hit.clean = clean;
return hit;
function hit(obj) {
// ...
}
function clean() {
// ...
}
}
对我来说,这是一个比乱搞构造函数和原型(prototype)更简洁的解决方案。
关于javascript - JS在对象实例化后从构造函数运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30788379/