我正在尝试创建一个“struct
”并以与在任何其他编程语言(即Swift)中使用相同的方式使用它。这是“结构”:
var myStruct = function (prop1) {
this.prop1 = 30;
}
然后我像这样访问prop1
:
var someVar = myStruct.prop1
由于某些原因不起作用。我做错了什么,我该如何解决这个问题?
这是JSFiddle,这是完整的代码:
$(document).ready(function(){
var myStruct = function (prop1) {
this.prop1 = 30;
}
$("button").click(function(){
$("p").css({"width": myStruct.prop1, "font-size": "200%"});
});
});
<body>
<h2>This is a heading</h2>
<p style="background-color:#ff0000">This is a paragraph.</p>
<p style="background-color:#00ff00">This is a paragraph.</p>
<p style="background-color:#0000ff">This is a paragraph.</p>
<p>This is a paragraph.</p>
<button>Set multiple styles for p</button>
答案 0 :(得分:3)
要使用构造函数创建对象,请使用:
function MyClass(prop) {
this.prop = prop;
}
要创建该类型的对象,请使用:
var obj = new MyClass(30);
要引用对象的属性,请使用:
console.log(obj.prop);
由于 30 已传入对象,因此this.prop设置为 30 ,该值将显示在日志中。
感谢@Tiny_Giant的澄清。
答案 1 :(得分:2)
您所做的是Object Constructor,要从构造函数中获取对象,您将使用new
关键字来创建对象的新实例。但是,除非您需要创建对象的多个实例,否则不应该使用它。
$(document).ready(function(){
var myStruct = function () {
this.prop1 = 30;
}
$("button").click(function(){
$("p").css({"width": new myStruct().prop1, "font-size": "200%"});
});
});
如果您不需要拥有对象的单独实例,则可以使用以下示例中演示的语法创建新的Object。
注意:
$('p').css()
方法。 object["property"]
表示法进行访问。
$(document).ready(function(){
var myStruct = {
width: '30px',
fontsize: '200%'
}
$("button").click(function(){
$("p").css({
"width": myStruct.width,
"font-size": myStruct.fontsize
});
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<h2>This is a heading</h2>
<p style="background-color:#ff0000">This is a paragraph.</p>
<p style="background-color:#00ff00">This is a paragraph.</p>
<p style="background-color:#0000ff">This is a paragraph.</p>
<p>This is a paragraph.</p>
<button>Set multiple styles for p</button>
&#13;
答案 2 :(得分:0)
这是类声明:
var myStruct = function (prop1) {
this.prop1 = 30;
}
这是类实现:
var obj = new myStruct(1);