我做了一个构造函数。我现在正在添加属性和方法。现在,我还添加了一个名为ceta()的私有函数。之后,我从构造函数中创建一个实例(obj1),如何使用私有函数来对象实例(不是,使用call,apply,bind)。
<html>
<head></head>
<body>
<script>
function alpha(){
this.a = 10;
this.b = 20;
this.beta = function(){
this.c = 30;
alert (c);
}
var ceta = function(){
alert ("hi!");
}
}
var obj1 = new alpha;
obj1.beta();// this works
obj1.ceta();// this not
</script>
</body>
</html>
答案 0 :(得分:2)
ceta
在构造函数alpha
的范围内,但不属于正在构造的对象。它可以在关闭时使用或在关闭时使用this.beta
函数返回。如;
function alpha(){
this.a = 10;
this.b = 20;
this.beta = function(){
ceta(); // <<-- invoke here for some purpose
this.c = 30;
alert(this.c);
return ceta; // <<-- or return here
}
var ceta = function(){
alert ("hi!");
}
}
var obj = new alpha(),
ceta = obj.beta(); // alerts twice and obj.c is set to 30
但这些都是无用的做法。 ceta
的主要任务应该是提供实用程序服务来帮助构造函数构造对象。
如果您需要从ceta
的所有实例访问alpha
,请将其放入alpha
的原型中。