Object.defineProperty Setter 函数的多个参数
Multiple Parameters for Object.defineProperty Setter Function?
是否可以为 Object.defineProperty setter 函数设置多个参数?
例如
var Obj = function() {
var obj = {};
var _joe = 17;
Object.defineProperty(obj, "joe", {
get: function() { return _joe; },
set: function(newJoe, y) {
if (y) _joe = newJoe;
}
});
return obj;
}
我没有从语法中得到任何错误,但我无法弄清楚如何调用setter函数并传递给它两个参数。
是否可以为 Object.defineProperty setter 函数设置多个参数?
是的,但无法调用它们(Object.getOwnPropertyDescriptor(obj, "joe").set(null, false)
除外)。使用分配给属性的一个值 ( obj.joe = "doe";
) 调用资源库 - 不能一次分配多个值。
如果你真的需要它们(无论出于何种原因),最好使用基本的二传手方法(obj.setJoe(null, false)
)。
我对setter方法也有类似的困境,所以我以对象param
结束:
set size(param) {
this.width = param.width;
this.height = param.height;
}
我像这样使用它:
this.size = {width: 800, height: 600};
只是一个有趣的想法。
var Joe = (function() {
// constructor
var JoeCtor = function() {
if (!(this instanceof Joe)){
throw new Error('Error: Use the `new` keyword when implementing a constructor function');
}
var _age = 17;
// getter / setter for age
Object.defineProperty(this, "age", {
get: function() { return _age; },
set: function(joeObj) {
if (joeObj.assert) {
_age = joeObj.value;
}
}
});
};
// static
JoeCtor.ageUpdateRequest = function(canSet, newAge){
return { assert: canSet, value: newAge }
};
return JoeCtor;
})();
myJoe = new Joe();
myJoe.age = Joe.ageUpdateRequest(true, 18);
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 函数未将值作为参数传递
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么不'我们在javascript中使用函数参数的数据类型
- 你好,这是测试用例,我必须在函数中传递n个参数
- JavaScript - 多参数函数,它是多个图像库的字符串
- 如何从两个参数函数返回随机整数
- 以无点风格在Ramda中编写一个无参数函数
- JS:将单参数函数转换为可链接函数
- 正则表达式类似于Javascript中的参数函数
- 将 $' 值传递给替换的关联参数函数
- "这个“;在参数函数中
- 如何向jquery插件发送参数函数
- 将参数函数Node.js从一个js传递到另一个js
- 如何在javascript参数函数中传递PHP post方法字符串
- 装饰 Javascript Promise.then 以便参数函数接收附加参数
- 正在分析setInterval ID'是的's参数函数
- 如何根据一个参数函数计算年龄
- 对象参数/函数和/或三元运算符混淆