gpt4 book ai didi

各种 API 中的 Javascript 链接语法?

转载 作者:行者123 更新时间:2023-11-30 17:11:36 25 4
gpt4 key购买 nike

我想知道我在各种 javascript 库中看到的各种链接样式是否有一个术语/概念/名称。我不认为自己是“javascript 人”,所以我偶然发现了各种风格的“链接”语法。

这里有一些例子:

// ember.js  
this.resource('products', function() {
this.resource('foo', { path: '/:foo_id' }); // <-- semicolon
this.resource('bar', { path: '/:bar_id' }); // <-- semicolon
// additional things can go here as long as semicolons are above
});

// ember.js
songsController = Ember.ArrayController.create({
model: songs, // <-- comma
sortProperties: ['track'], // <-- comma
sortAscending: true // <-- additional things if you want, use commas
});

// jasmine
beforeEach(function() {
foo = {
setBar: function(value) {
bar = value;
}, // <-- comma
getBar: function() {
return bar; // <-- additional things if you want, use commas
}
};

// angular.js
$routeProvider.
when('/phones', {
// ...
}). // <-- period
when('/phones/:phoneId', {
// ...
}). // <-- period
// additional things can go here as long as periods are above

具体来说,似乎只是尾随字符令人困惑。你们是明白 API 真正在做什么,还是只是寻找示例并记住/熟悉它?如果它是 grok'ing javascript,当您看到 Ember.ArrayController.create() 接受带有逗号和大括号的内容时,您会认为:

Braces with commas eh? That looks like an object. I bet .create() takes an object.

这个链接/堆叠有名字吗?也许它没有名字,它只是我不理解的 Javascript。

最佳答案

这些都不是特定于任何框架的。您看到的是原生 JavaScript 功能。

让我们来看看你的例子

this.resource('bar', { path: '/:bar_id' });  // <-- semicolon

这不是链接。分号用于表示 javascript 语句的结束。

songsController = Ember.ArrayController.create({
model: songs, // <-- comma
sortProperties: ['track'], // <-- comma
sortAscending: true // <-- additional things if you want, use commas
});
javascript 中的

对象文字{}属性 组成。属性使用逗号分隔的键值对定义:

var myObj = {
myKey : "myStringValue",
mySecondKey : "mySecondStringValue",
myFunctionKey : function() {
return "I am a function";
}
}

关于对象字面量的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Object_literals

句点用作对象访问器:

var obj = {
myProp : myVal
};

console.log(obj.myProp); // myVal

现在你的最后一个例子实际上是函数链:

$routeProvider.
when('/phones', {
// ...
}). // <-- period
when('/phones/:phoneId', {
// ...
});

当函数返回对其父对象或另一个包含函数的对象的引用时,会发生这种情况:

var obj = {
funcOne : function() {
return this;
},
funcTwo : function() {
return this;
},
funcThree : function() {
return "NO more Chaining FOr YOU!";
}

}

obj.funcOne().funcTwo().funcThree(); // "NO more Chaining FOr YOU!"

obj.funcOne().funcTwo().funcThree().funcFour(); // throws an error - a string cannot contain a function

希望这对您有所帮助!

关于各种 API 中的 Javascript 链接语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26902396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com