;(function($){
// alert($);
var House = function(obj){
//先保存一下obj对象,方便内部调用
this.obj = obj;
this.set = {
"width":1000,
"height":800,
"posterWidth":700,
"posterHeight":800,
"speed":500,
"scale":0.9,
"verticalAlign":"middle"
};
$.extend(this.set,{"width":500});
//$.parseJSON(this.set,);
// console.log(this.set);
console.log(this.getSetting());
};
House.method = {
//用于获取处理用户在标签的配置
getSetting:function(){
var setting = this.obj.attr('data-set');
if(setting && setting!=null){
return($.parseJSON(setting));
}else{
return {};
}
}
};
我想你是运行到new House(obj)时出现这个错误的吧?
这个和js中的继承有关。修改代码如下
House.prototype = {...
原理,this是指向House的实例house(比如,
var house = new House(obj);
)。this是无法取到House.method这个对象的。所以,this.getSetting其实是返回的是undefined,当然不是一个函数。
即使写成
console.log(this.method.getSetting());
也会报错,原因同上:this是无法取到House.method这个对象的。
看一下js中的继承就可以了。
看了之后想一下,改成
console.log(House.method.getSetting());
是否会报错