7 javascript methods class object
有一种方法可以知道哪个类拥有一个函数?例:
function globalFunc(){
//alert MyObject
}
function MyObject(){
}
MyObject.prototype.test=function(){
globalFunc();
}
var o=new MyObject();
o.test(); //alert MyObject
Run Code Online (Sandbox Code Playgroud)
现在我使用此解决方法:
function globalFunc(){
alert(globalFunc.caller.__class__);
}
function MyObject(){
}
MyObject.prototype.test=function(){
globalFunc();
}
MyObject.prototype.test.__class__=MyObject;
var o=new MyObject();
o.test(); //alert MyObject
Run Code Online (Sandbox Code Playgroud)
但是有一个很大的问题,看看这个:
function globalFunc(){
alert(globalFunc.caller.__class__);
}
function MyObject(){
}
MyObject.prototype.test=function(){
var temp=function(){
globalFunc();
}
temp();
/* to simulate a simple closure, this may be for example:
element.addEventListener("click",temp,false);
*/
}
MyObject.prototype.test.__class__=MyObject;
var o=new MyObject();
o.test(); //alert undefined
Run Code Online (Sandbox Code Playgroud)
那么,有一个明确的方法来获得这个?我知道问题在哪里(类属性只是test而不是temp的属性),但我也不能将类添加到temp.
谢谢.
谢谢你的回复,一些澄清.
我试图与私人成员进行个人框架面向对象.
所以:
globalFunc是一个特殊的函数,我用它来获取"私有"属性,我不能用call方法调用它或传递一些参数,我传递的唯一参数是"this":
例如,$()是全局的
Class({
public:{
MyClass:function(){
},
setName:function(name) {
$(this).name=name; //set the private var name
},
getName:function(){
return $(this).name;
}
},
private:{
name:"UNKNOWN"
}
})
var o=new MyClass();
o.getName(); // UNKNOWN
o.setName("TEST!!!");
o.getName(); // TEST!!!
o.name; //undefined
$(o).name; //undefined
Run Code Online (Sandbox Code Playgroud)
要使用继承,$(),我需要知道什么类调用它和类的对象.
一切都很好,但如果我需要访问clousure中的私人成员,我必须将__class__ 属性添加 到clouser !! 我不想要这个!
再次感谢,抱歉我的英语不好,我不是母语.