为了账号安全,请及时绑定邮箱和手机立即绑定

为什么无法执行getsetting函数呢?总提示is not a function

;(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 {};

}

}

};


正在回答

1 回答

我想你是运行到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());

是否会报错


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么无法执行getsetting函数呢?总提示is not a function

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信