javascript“类”库的一行代码,不明白
求助:javascript“类”库的一行代码,不明白
完全代码是:
------解决方案--------------------
var extended = obj.extended;//其实还有这一句,也不是很清楚它的用意
extended 等于 obj.extended,可以使function 也可以是其他对象要看obj的extended的具体指向
if (extended) extended(klass)//就是这句不明白
如果extended 不是undefined 、false,0就执行extended即,执行的问题obj.extended(klass);
从字面上(class,extend)理解,这些做了部分面向对象语言的语法的工作。
这是基于原生js对js的类面向对象的模拟。
------解决方案--------------------
这好像拔赤翻译的《基于mvc的javascript富应用开发》一书中的代码。这种写法是模拟了Ruby中的
对象继承机制。在Ruby对象被继承和模块被包含是会触发事件的。从而可以实现动态代码注入的效果。
下面是一个小例子
klass.extend = function(obj){
var extended = obj.extended;//其实还有这一句,也不是很清楚它的用意
for (var i in obj){
klass[i] = obj[i];
}
if(extended) extend(klass)//就是这句不明白
};
完全代码是:
var Class = function(){
var klass = function(){
this.init.apply(this, arguments);
};
klass.prototype.init = function(){};
klass.fn = klass.prototype;
klass.fn.parent = klass;
klass.extend = function(obj){
var extended = obj.extended;//其实还有这一句,也不是很清楚它的用意
for(var i in obj){
klass[i] = obj[i];
}
if (extended) extended(klass)//就是这句不明白
};
klass.include = function(obj){
var included = obj.included;
for(var i in obj){
klass.fn[i] = obj[i];
}
if (included) included(klass)
};
return klass;
};
javascript
类库 类 属性
------解决方案--------------------
var extended = obj.extended;//其实还有这一句,也不是很清楚它的用意
extended 等于 obj.extended,可以使function 也可以是其他对象要看obj的extended的具体指向
if (extended) extended(klass)//就是这句不明白
如果extended 不是undefined 、false,0就执行extended即,执行的问题obj.extended(klass);
从字面上(class,extend)理解,这些做了部分面向对象语言的语法的工作。
这是基于原生js对js的类面向对象的模拟。
------解决方案--------------------
这好像拔赤翻译的《基于mvc的javascript富应用开发》一书中的代码。这种写法是模拟了Ruby中的
对象继承机制。在Ruby对象被继承和模块被包含是会触发事件的。从而可以实现动态代码注入的效果。
下面是一个小例子
var Class = function(){
var klass = function(){
this.init.apply(this, arguments);
};
klass.prototype.init = function(){};
klass.fn = klass.prototype;
klass.fn.parent = klass;
klass.extend = function(obj){
var extended = obj.extended;
for(var i in obj){
klass[i] = obj[i];
}