我已经测试了很多关于制作课程的内容,现在我终于发现了它是如何工作的,这就是我想让课堂变得简单明了,而不会发送垃圾邮件'这个'
结果就是这样,现在我只有两个问题:
redsheep.options.show().sizes
,就是调出这个变量,现在我觉得太长了。如何使其像redsheep.sizes
? redsheep.options.show().eat
不是继承自sheepclass
grass
,而是undefined
。如何为新创建的对象创建默认值?
<html>
<head>
<meta charset='utf-8'>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<title>A simple javascript function</title>
<script type="text/javascript">
$(document).ready(function(){
var sheepclass = function(options){
this.options = {'sizes' : 'thin',
'eat' : 'grass',
'color' : 'white',
show : function(){
return {'color':options.color,
'eat':options.eat,
'sizes':options.sizes
};
}
}
}
var blacksheep = new sheepclass({'color':'black'});
var redsheep = new sheepclass({'color':'red','sizes':'fat'});
$('div').append('<p>blackcsheep color : ' +
blacksheep.options.show().color);
$('div').append('<p>redsheep color : ' +
redsheep.options.show().color +
'<p>redsheep size:' +
redsheep.options.show().sizes +
'<p> redsheep eat:' +
redsheep.options.show().eat);
})
</script>
<style>
div{display:block;width:800px;height:400px;border:2px solid red;}
</style>
</head>
<body>
<div>
Result:
</div>
</body>
</html>
答案 0 :(得分:0)
这样的事情可以做到:
var sheepclass = function(options) {
this.sizes = options.sizes || 'thin';
this.eat = options.eat || 'grass';
this.color = options.color || 'white';
}
这样,您可以直接访问属性(例如使用blacksheep.sizes
):
var blacksheep = new sheepclass({'color':'black'});
console.log(blacksheep.sizes); // prints 'thin'
答案 1 :(得分:0)
向返回其自身属性的对象添加方法是无用的。删除它并正常访问属性:
var sheepclass = function(options) {
this.options = $.extend({
'sizes': 'thin',
'eat': 'grass',
'color': 'white',
}, options);
}
你可以像这样访问它:
redsheep.options.eat