- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于教学兴趣,我想知道一种在对象创建时模拟自动增量变量的正确方法。
我把你放在我有一个封装的产品“”“类”“””作为具有隐藏属性的对象的场景中。
(function() {
var Product = (function() {
function Product(name, description) {
this.getName = function() {
return name;
};
this.getDescription = function() {
return description;
};
this.getProductId = function() {
return productId;
}
}
return Product;
}());
var p = new Product("Product1", "Should have id=1");
var q = new Product("Product2", "Should have id=2");
console.log(p);
console.log(q);
})();
在这段代码中,如何或什么是添加计数器的最佳方式,以便每次我创建 Product 的新实例时,productId 都将具有连续的值,并且每个对象都保留自己的值。同时,上述 Id 只能通过方法 getProductId() 访问。
提前致谢。
最佳答案
您可以使用 Closures :
(function() {
var Product = (function() {
var nextId = 1;
function Product(name, description) {
var productId = nextId;
nextId += 1;
this.getName = function() {
return name;
};
this.getDescription = function() {
return description;
};
this.getProductId = function() {
return productId;
}
}
return Product;
}());
var p = new Product("Product1", "Should have id=1");
var q = new Product("Product2", "Should have id=2");
console.log(p.getProductId());
console.log(q.getProductId());
})();
如果将一个函数包装在另一个函数中,则内部函数可以访问外部函数的所有变量。当您创建一个新的 Product
时,将调用 function Product(name, description)
;每次递增 nextId 1。如果你想看到更多关于闭包的例子,你可以看看 this stackoverflow answer .
关于javascript - ES5 Javascript封装对象自增id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50223951/
1、修改数据 复制代码代码如下: DataRow dr =
数据库操纵基本流程为: 1、连接数据库服务器 2、选择数据库 3、执行SQL语句 4、处理结果集 5、打印操作信息 其中用到的相关函数有 •resource m
CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,它是普通应用程序的缩影。如果您掌握了某框架的CRUD编写,那么意味可以使用该框架创建普通应用程序了
项目结构: 添加页面: &
本文实例讲述了android操作sqlite数据库(增、删、改、查、分页等)及listview显示数据的方法。分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识
我是一名优秀的程序员,十分优秀!