将函数转换为变量
convert function into variable
我在谷歌上搜索了一下,似乎要么不知道我在问什么,要么这是不可能的。我想可能是前者。
如果我有一个对象
obj = {
func : function(){
return 'hello';
}
}
我通常做alert(obj.func())
,我当然得到"hello"
但是,如果我想让obj.func
只是一个变量,这可能吗?我永远不会将参数传递给函数,我只想将其返回值引用为像alert(obj.func)
这样的普通变量,而不是函数调用。
谢谢。
试试这个:
obj = {
func : (function(){
return 'hello';
})()
}
是的,很容易!
var obj = {
func : 'hello'
};
alert(obj.func);
看看这个工作小提琴
如果你想让它是一个计算的值或某事,你仍然可以让它成为一个函数,但可以像一个简单的属性一样调用:
var obj = {
func : (function(){return 'hello';})()
};
您所说的是getter:它是一个作为属性工作的函数。自javascript 1.8.5以来,它是标准的,这意味着旧的浏览器无法处理它。
语法如下,使用您的示例:
obj = {
get func() { return "hello" ; }
};
// use like this :
console.log(obj.func);
很可能您还想定义一个setter:这也是一个行为就像一处房产。语法为:
obj = {
get func() { return this._innerText ; },
set func(txt) { this._innerText = txt ; },
_innerText : "hello"
};
console.log(obj.func) ; // output is hello
obj.func = "godd bye" ;
console.log(obj.func) ; // output is good bye
显然,就像通常的简单例子一样,这个例子没有多大用处:
让我们看看使用getter/setter的度-弧度转换器:
var Angle = {
get degree () { return this._degree ; },
set degree (dg) { this._degree = dg ; },
get radian () { return 2*Math.PI*this.degree/360 ; },
set radian (rd) { this._degree = rd * 360 / (2*Math.PI) ; },
_degree : 0
} ;
// you can use :
Angle.radian = Math.PI / 2;
console.log ( Angle.degree ); // -->> output is 90
Angle.degree=45 ;
console.log(Angle.radian) ; // --> output is 0.7853... which is PI/4
您还可以查看Object.defineProperty,它允许定义标准属性和getter/setter,但有更多选项,尤其是"隐藏"属性的选项,它允许不枚举属性。
有关详细信息:
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/gethttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/sethttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/defineProperty
var varFunc = function() { alert("hello"); }
varFunc();
- 将标量变量转换为javascript中包含变量的数组
- 使用Javascript将多行变量转换为单行变量
- 变量转换为另一个“未定义”的变量
- 如何在javascript中将String变量转换为int
- 提交时将JavaScript变量转换为PHP表单
- 在d3.js中将局部变量转换为全局变量
- 在php函数中将php变量转换为javascript变量
- AngularJS变量转换为html<对象>属性
- 正在将字符串变量转换为数组
- 将变量转换为 json 路径
- 将 MVC 4 Razor 变量转换为 JavaScript 数组
- 如何在 JavaScript 中将局部变量转换为全局变量
- 如何将 jstl/JSP 变量转换为 JavaScript 变量
- 如何将变量转换为对象
- 如何使用 Javascript 将变量转换为字符串
- 在将会话变量转换为 javascript 变量时丢失特殊字符
- 如何在函数内将未定义的变量转换为对象
- 在按键和鼠标单击后将函数变量转换为全局变量
- 如何在javascript中将整数变量转换为字符串
- Javascript变量转换为Applescript