问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++ invoking object 什么意思4

发布网友 发布时间:2023-09-19 09:29

我来回答

3个回答

热心网友 时间:2024-12-15 03:22

这篇文章主要介绍了Javascript中的方法链(Method Chaining)介绍,本文讲解了Javascript Method Chaining、Method Chaining 使用、Method Chaining VS prototype Chaining等内容,需要的朋友可以参考下

在寻找如何设计一个Javascript API的时候,发现了Method Chaining这个东西,方法链,看上去似乎很强大,也挺有意思的,而这个东西也是过去我们经常看到的。。

Javascript Method Chaining

在维基百科上有这样的解释:
代码如下:
Method chaining, also known as named parameter idiom, is a common syntax for invoking multiple method calls in object-oriented programming languages. Each method returns an object, allowing the calls to be chained together in a single statement.Chaining is syntactic sugar which eliminates the need for intermediate variables. A method chain is also known as a train wreck e to the increase in the number of methods that come one after another in the same line that occurs as more methods are chained togethe even though line breaks are often added between methods.

拿翻译工具翻译了一下:

代码如下:
方法链,也被称为命名参数法,是在面向对象的编程语言调用的调用多个方法的通用语法。每一个方法返回一个对象,允许电话连接到一起,在一个单一的声明。链接是语法糖,省去了中间变量的需要。方法链也被称为火车残骸中由于方法来相继发生的同一行以上的方法都锁在即使换行通常添加方法间的数量增加。

Method Chaining 使用

目测对于方法链用得最多的,应该就是jQuery了。
代码如下:
// chaining
$("#person").slideDown('slow')
.addClass('grouped')
.css('margin-left', '11px');
我们可以用这样的用法来调用这个。jQuery严重依赖于链接。这使得它很容易调用的几个方法相同的选择。这也使得代码更清晰和防止执行相同的选择几次(提高性能)。没有方法链的时候则是下面的样子
代码如下:
var p = $('#person');
p.slideDown('slow');
p.addClass('grouped');
p.css('margin-left', '11px');
看上去和设计模式中的builder很像,不同的是,这里的p是方法,而不是一个类。

Javascript 方法链示例

在之前我们说到Javascript 高阶函数 的时候,说到的print('Hello')('World'),而这种用法的结果可能会变成这样子。
代码如下:
function f(i){
return function(e){
i+=e;
return function(e){
i+=e;
return function(e){
alert(i+e);
};
};
};
};
f(1)(2)(3)(4); //10
这是网上的一个例子,然而也是我上一次写链式调用的作法。看上去弱爆了。
代码如下:
var func = (function() {
return{
add: function () {
console.log('1');
return{
result: function () {
console.log('2');
}
}
}
}
})();

func.add().result();

实际上应该在每个function都要有个return this,于是就有了:
代码如下:
Func = (function() {
this.add = function(){
console.log('1');
return this;
};
this.result = function(){
console.log('2');
return this;
};
return this;
});

var func = new Func();
func.add().result();

当然我们也可以将最后的两句
代码如下:
var func = new Func();
func.add().result();
变成
代码如下:
new Func().add().result();

其他

最后作为一个迷惑的地方的小比较:

Method Chaining VS prototype Chaining

原型链与方法链在某些方面上是差不多的,不同的地方或许在于

1.原型链是需要用原型
2.方法链则是用方法

热心网友 时间:2024-12-15 03:22

C++是一个很底层的语言,直接与指针和内存二进制数据打交道的,不存在那些高层语言中的语言原生Object的类型。C++中可以用void*保存各个对象的指针,但它和Object对象是有本质的区别的。 你目前的需求,我估计是要做COM开发。C++里面调用COM比较...

热心网友 时间:2024-12-15 03:23

invoking=调用 object=对象
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
联想E盘不见了怎么办? 电脑e盘不见了怎么恢复?6个步骤找回e盘 五一去河源万绿湖游玩,需要携带哪些物品? 五一假期,旅行必带的物品是什么 建行办新卡用了新手机号,旧卡就自动绑了信号 请问电磁炉热敏电阻阻值是多少 电磁炉换电阻多少钱 电磁炉配件电阻多少钱 电磁炉510K大电阻多少钱一个 更换电磁炉电阻多少钱 中国移动的手机到柬埔寨能用吗?35 郑州职业技术学院的补录 发动机能起动,正常操作怎样能使车开不走 聊城职业技术学院怎么样,?? 什么鬼,海外直邮还要发身份证吗?我朋友从国外寄东西给我也没说...62 手机裸眼3d电影怎么下载!我的是htc g17谢谢了!!!9 谁能给我中华第一龙的读后感啊(200字左右)27 中华第一龙读后感5008 中华第一龙的感悟100字30 《中华第一龙》读后感43 中华第一龙读后感2 成年人独处的快乐是什么样的? 什柳工856装载机怎么样5 柳工856装载机2013年款干了3300小时活现在能卖多少钱... 柳工856装载机出厂问题1 我想买柳工装载机856不知道怎么样好不好.车要在矿山干活挺累...1 2009快女网络赛区的选手进入前20强的是谁? 我的快递从国外寄回来要清关是什么意思?在线等14 从国外寄东西到中国如果被海关查到了怎么办54 成年人独处的快乐是什么样的? 6年的柳工856装载机是什么价格2 QQ的密码忘记,登不到QQ了,更改密保手机号,以前号码记不得了,记得现在的... 联想笔记本键盘进水失灵还属于保修范围么?4 macbook键盘进水 是否能修4 机械键盘进水,保修期内就不能售后维修了吗1 洪武大案道同被杀是第几集 鲅鱼圈好还是葫芦岛好6 ...成年人犯罪法规定教育行政部门学校什么江什么纳入学 我和中介签有合同但是我没做够三个月被老板开除了这样中介能扣我...4 跟中介进厂。然后签了三个月合同。但是做了两个月被厂里面开除了... 中华第一龙96 中华第一龙的读书笔记8 关于忠告的名言 我从国外邮购的东西被海关扣了 要去清关 是什么意思106 鲅鱼圈到葫芦岛走高速多少公里6 我签合同然后我被公司开除了能不能拿到工资 没做满七天就被工厂辞退可以领工资吗当时没怎么看合同但现在我被...1 我是中国移动用户,我在柬埔寨怎么打电话回国,费用多少7 中介规定离职要提前10天申请,但是我在厂里辞职通过批准了,中...2 我从中介去厂里做临时工干了九天厂里领导说我干的慢把我辞退回中...3