我想在Javascript中执行以下操作
function A(){
this.B = function() { ... };
this.C = function() { <<I need to call B() here>> } ;
};
我已经阅读了以下方法重载,但我想知道专业程序员是否会这样做。即如果您只是将其作为练习或实验,或者实际上是在生产代码中执行此操作。
function foo(a, b, opts) {
};
foo(1, 2, {"method":"add"});
foo(3, 4, {"test":"equals", "bar":"tree"});
答案 0 :(得分:0)
只需从C();
中调用B()function A(){
B = function() {
// Do something here
}
C = function() { B(); }
};
或者,如果您只想创建别名
function A(){
B = function() {
// Do something here
}
C = B
};
答案 1 :(得分:0)
干净的方式是:
var A = function() { };
A.prototype.B = function() { };
A.prototype.C = function() { this.B(); };
原型只是一组静态属性,可以在您创建的每个新实例中克隆。
你正在做的和你之间的区别在于,在你的情况下,当你在对象的“构造函数”中时创建和添加方法,而使用这种方法,在你进入之前它们已经是对象的属性它的“构造函数”,只解析一次(当你将它们添加到原型时),而不是每次创建一个新实例时都被解析,这更快。
我想,如果我错了,请纠正我。
var A = function() {
// this scope is what i mean by "constructor".
};