JS对象文字中的方法和子方法
Methods and sub-methods in JS object literals
因此,如果我在Javascript中声明一个对象,如下所示:
var myhouse = {
room: {
bed: function() { return "sleep"; }
}
}
我可以打电话给:
myhouse.room.bed();
我可以制作一个只需即可调用的方法吗
myhouse.room();
我不能只说:
var myhouse = {
room: {
function() { return "stuff"; },
bed: function() { return "sleep"; }
}
}
它是无效的。那么我错过了什么?这样做是个好主意吗?
你不能用单个文字来完成,你需要一个额外的赋值来设置函数的属性:
var myhouse = {
room: function() { return "stuff"; }
};
myhouse.room.bed = function() { return "sleep"; };
要使其成为单个表达式,您可以使用IEFE
var myhouse = {
room: (function(){
var room = room = function() { return "stuff"; }
room.bed = function() { return "sleep"; };
return room;
})()
};
或者逗号运算符(非常不可读,但有效):
var myhouse = {
// using myhouse as an already declared variable
room: (myhouse = function() {return "stuff";},
myhouse.bed = function() {return "sleep";},
myhouse)
};
如果您知道函数也是对象,则可以使用这样的语法。
var room = function() { return "stuff"; }
room.bed = function() { return "sleep"; };
var myhouse = { room: room };
myhouse.room(); // stuff
myhouse.room.bed(); // sleep
或
var myhouse = { room: function() { return "stuff"; } };
myhouse.room.bed = function() { return "sleep"; };
myhouse.room(); // stuff
myhouse.room.bed(); // sleep
相关文章:
- javascript从子方法调用父方法
- JS对象文字中的方法和子方法
- 从子方法访问父对象
- 如何从子方法调用父方法
- 在 dojo 中使用它通过父类访问子方法
- 带有构造函数的Javascript子方法/名称空间
- 删除变量's的价值而不丢失其子方法
- 用子方法实现函数可以吗
- 我如何从父调用原型子方法
- 从子方法访问父属性
- 带有子方法的方法链接
- 自动css选择器生成的第n子方法的替代方案
- 在Javascript中从子方法调用父方法
- 在JavaScript中从父方法调用子方法
- 如何从子方法中分离父函数
- jQtree,调用嵌套列表中的方法调用父方法和子方法
- Javascript Prototype pub子方法超出作用域
- 父对象调用子方法
- 谷歌应用脚本类型错误:无法调用未定义的方法“子字符串”
- Javascript - 从子方法继承和调用父方法