我想用JavaScript中的方法构建自己的对象,但是,在我第一次尝试使用下面的代码时返回完整的代码“已在Chrome浏览器开发工具的控制台没有方法 'WriteOut的'。Javascript对象用方法返回“没有方法”我的方法名称“”错误
var link = function bhLink(options) {
defaultOptions = {
targetURL: '#',
target: '_blank',
textColor: '#000',
bgColor: '#fff',
font: 'Arial',
fontSize: '12px',
lineHeight: '12px',
text: '[Test]'
}
if (typeof options == 'object') {
options = $.extend(defaultOptions, options);
} else {
options = defaultOptions;
}
link.prototype.writeOut = function() {
return $('<a></a>')
.prop({'href':this.targetURL, 'target': this.target})
.css({'font-family':this.font, 'color':this.textColor, 'font-size': this.fontSize, 'line-height':this.lineHeight});
}
} // end link
我使用它像
$('#id_of_some_button').click(function(e) {
e.preventDefault();
$('#id_of_some_div').html(link.writeOut);
});
两个click事件和链接是内$(document).ready({});
块。
有何想法?
编辑 =========================================== ===
添加选项,参数和if语句来请检查是否有提供的选项..
你执行'link'?如果没有,那么它还没有给writeOut方法。通常方法被添加到构造函数的原型* outside *之外。 –
第一个问题:'link.writeOut'访问一个属性,而'link.writeOut()'执行一个方法。 – Blazemonger
评论者!还请看看我说这是我的第一次尝试的地步..在这里变得尴尬! :) –