我有以下简单的脚本,我用它来动态创建一个列表元素 <ul>
<script type="text/javascript">
function generate(){
var arr = new Array();
<c:forEach items="${articles}" var="a" varStatus="status">
$('#listitems').append(
"<li>"+${a.title}+"</li>"
);
arr[${status.index}] ="${a.slideShow.images}";
</c:forEach>
}
</script>
Run Code Online (Sandbox Code Playgroud)
我的问题源于images属性.每篇文章都有幻灯片,每个幻灯片都有一个图像列表.我想通过jave list.get(index)从图像列表中取出第一个图像; 我想做一些像"$ {a.slideShow.images.get(0)}"这样的事情..get()是列表对象中的java方法.
有任何想法吗?
function foo() {
return {a:9};
}
var bar = foo();
bar.a //returns 9
Run Code Online (Sandbox Code Playgroud)
要么
function foo() {
return {a:9};
}
var bar = new foo();
bar.a // returns 9
Run Code Online (Sandbox Code Playgroud)
据我所知,新的不是与对象文字符号一起使用,但是新的如何使用呢?另外,为什么可以使用新对象访问原型,而不是使用对象文字符号?
编辑:
我现在明白了,如果其他任何人偶然发现这个问题/问题,这可能有助于你理解它:
function foo() {
this.a = "LOL";
return "WTF";
};
var bar = new foo(); // bar = [Object object]
var c = foo(); // c = "WTF"
window.a // "LOL"
Run Code Online (Sandbox Code Playgroud)
另请阅读接受的答案.
有一个对象,比如说Book有一个其他对象的集合Page.所以我将原始数据的页面实例化为Book:
function Book(data){
this.pages = [];
var self = this;
data.forEach(function(item){
self.add(item);
});
}
Book.prototype.add = function(data){
this.pages.push(new Page(data));
}
function Page(data){
// some validation code
this.prop = data.prop;
}
Page.prototype...
Run Code Online (Sandbox Code Playgroud)
从可测试性讲座我听说new在另一个对象中实例化(使用)是一种不好的做法.做同样的事情的正确方法是什么?
如果没关系 - 如果我实例化一个新的Pagein add()方法或传递给它作为一个对象已经(this.add(new Page(data)))有什么区别吗?
以下示例是JavaScript中用于创建和操作对象的一种方式,即使用new Object()语法.另一种方法是创建一个对象文字.
我记得在某个地方阅读但现在无法找到它因为某种原因应该避免使用"new Object()"在JavaScript中创建对象.
是否有理由现在使用new Object()如下代码?
<html>
<head>
<title>Test Page</title>
<script type="text/javascript">
window.onload = function() {
var layout = new Object();
layout.idCode = 'simple';
layout.title = 'Simple Layout';
layout.content = '';
layout.width = 400;
layout.display = function() {
return '<div style="background-color: #eee; width:'+this.width+'">'+this.content+'</div>'
};
layout.width = 200;
layout.content = 'This is the new content';
document.getElementById('output').innerHTML = layout.display();
};
</script>
</head>
<body>
<div id="output"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 这几乎有答案...... 你如何在正则表达式中使用变量?
我需要知道我是否可以在正则表达式中使用变量而不是硬编码?
str1 = str1.replace(/abcdef/g, "stuvwxyz");
Run Code Online (Sandbox Code Playgroud)
我可以使用变量而不是/ abcdef/g和"stuvwxyz"
阅读可以使用哪些技术在JavaScript中定义一个类,以及它们的权衡取舍是什么?在stackoverflow上我明白我可以通过定义一个类
方法1:
function Person(name, gender){
this.name = name;
this.gender = gender;
}
Run Code Online (Sandbox Code Playgroud)
并在原型中添加函数,以避免每次实例化时重新创建成员函数.喜欢
Person.prototype.speak = function(){
alert("my name is" + this.name);
}
Run Code Online (Sandbox Code Playgroud)
并通过创建其实例
var person = new Person("Bob", "M");
Run Code Online (Sandbox Code Playgroud)
我认为使用新的关键字就可以创建相同的对象
方法2:
var Person = function (name, gender) {
return {name:name, gender:gender};
}
person = Person("Bob", "M");
Run Code Online (Sandbox Code Playgroud)
第二种方法是否完成了第一种方法完成相同的操作?如果是这样的话,我将如何在第二种方法中通过原型模拟添加函数(正如我们在方法1中所说的那样)?
我只是在玩Date物体,我观察到了这一点
MDN - 日期文档证实了这一点
注意:请注意,JavaScript Date对象只能通过调用JavaScript Date作为构造函数来实例化:将其称为常规函数(即没有new运算符)将返回一个字符串而不是Date对象; 与其他JavaScript对象类型不同,JavaScript Date对象没有文字语法.
棘手的部分new Date返回相同的结果new Date()返回?
我尝试了正常功能的相同实验,
function f() {
console.log(' I am executed');
}
new f
Run Code Online (Sandbox Code Playgroud)
我很惊讶看到I am executed记录.我试图找出当我不使用execution ()运算符时调用f的原因.有人可以解释一下为什么new叫这个方法?
PS:我不知道new f应该给我什么.这是一个语法错误所以我认为它会给我一个错误.但事实并非如此.
function Shape() {
this.name = "none";
}
function Rect () {
this.x = 0;
this.y = 0;
this.width = 0;
this.height = 0;
};
Run Code Online (Sandbox Code Playgroud)
如果Shape的所有属性都可用于Rect,那么写入是正确的
Rect.prototype = Shape;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,每个实例Rect(i.e. Object.create(Rect))都会从Shape对象中获取一个单独的名称.