日期:2014-05-16 浏览次数:20385 次
var parentClass = function(){ //类中的属性: this.value="parent"; //类中类: this.sonClass = function(){ this.value = "son"; }; }; var parent = new parentClass(); var son = new parent.sonClass(); alert(son.value); alert(parent.value); //结果: son 后 parent
///======================================== var parentClass = function(){ //类中的属性: this.value="parent"; //类中类: this.sonClass = function(){ this.value = "son"; }; this.sonObj; //构造func (function(){ this.sonObj=new this.sonClass(); }).apply(this,arguments); }; var parent = new parentClass(); alert(parent.sonObj.value); alert(parent.value); //结果: son 后 parent
var parentClass = function(){ //类中的属性: this.value="parent"; //类中类: var sonClass = function(){ this.value = "son"; }; }; var parent = new parentClass();
------解决方案--------------------
搞不清楚你这么设计的目标是什么,sonClass继承parentClass?
------解决方案--------------------
无所谓什么类中类,js中的函数(方法)都可以当作构造函数使用,就比如随便写个
function test(){}
var a=new test();//一样可以产生一个对象,只是没有属性而已;
a.test=test;
var b=new a.test();//方法也可以当作构造函数使用,当然也没有属性
像你上面那个所谓类中类,当作方法调用一样是可以的
var parent = new parentClass();
parent.sonClass();//方法里面的this指代方法拥有者,所以这个方法在这里给parent对象添加了一个value属性
alert(parent.value);
------解决方案--------------------
用namespace啊
var ns1 = ns1 || {}; ns1.foo = function(){}; var ns2 = ns2 || {}; ns2.foo = function(){};
------解决方案--------------------
var parentClass={ //类中的属性: value:"parent", //类中类: sonClass:{ value:"son" } }; alert(parentClass.value); alert(parentClass.sonClass.value);