我可以在没有对象函数调用的情况下获取(可能是计算的)属性值吗?
Can I get (probably computed) property value without object function calling?
对于可能微不足道的问题,我深表歉意,但现在我有点困惑。这是我对矩形的定义:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fiddling</title>
<script>
function Rectangle() {
this.left = arguments[0];
this.top = arguments[1];
this.right = arguments[2];
this.bottom = arguments[3];
this.width = function(){
return this.right - this.left;
};
this.height = function() {
return this.bottom - this.top;
}
this.Assign = function (ARectangle) {
this.left = ARectangle.left;
this.top = ARectangle.top;
this.right = ARectangle.right;
this.bottom = ARectangle.bottom;
}
}
var R = new Rectangle(100, 100, 400, 500);
alert(R.width); //shows function definition
alert(R.height); //shows function definition
alert(R.width()); //shows proper value
alert(R.height()); //shows proper value
</script>
</head>
<body>
</body>
</html>
这是(看似?)类似的例子,其中也有某种矩形 - DOMRectReadOnly,但属性宽度和高度显然不是函数。我想知道,他们是如何完成引入只读属性(宽度和高度)的,这可能是边框之间的差异 - 因此也是函数之间的差异。我也想拥有这些漂亮的形状属性。;-)
感谢辅导
它可以通过getters完成:
Object.defineProperty(this, 'width', {
get : function(){
return this.right - this.left;
}
});
Object.defineProperty(this, 'height', {
get: function(){
return this.bottom - this.top;
}
})
像这样:
Object.defineProperties(this, {
width: {
get: function(){
return this.right - this.left;
},
},
});
相关文章:
- Ember服务在注入组件并在计算属性中使用后是未定义的
- Ember.js:未在组件'中渲染的模型的计算属性;关于变更的参考
- 升级到Ember 1.0计算属性在视图中不再有效
- ES6非结构化中的计算属性-非结构化整体对象
- 在Ember中,can服务具有计算属性
- Ember.js数组控制器计算属性的复选框
- 在ember.js中访问模型之外的计算属性
- Vue.js在计算属性中设置值
- Ember使用参数计算属性
- ember.js计算属性中this的值是如何定义的
- Google Chrome中的计算属性名称({[a]:1})
- Backbone.js在模型后面添加了一个计算属性's已解析
- Ember-自定义计算属性,用于检查是否存在所有依赖字段
- 阻止在knockout.js中运行计算属性(dependenobservable)
- 使计算属性依赖于emberjs中另一个对象的所有属性
- 如何使用ES6在Ember中声明可观察性或计算属性
- 如何在Ember.js中创建一个计算属性来查看单个EmberData属性是否脏
- Coffescript 和 Ember.js计算属性
- 记录未按时加载到组件中的计算属性
- 如何创建向属性加 1 的 Ember 计算属性