我对编写javascript的方式感到困惑,我想知道两者之间有什么区别?它们都产生相同的结果,但是编写它的最佳方法是什么?

我正在使用Framer.js库进行原型制作。我知道Framer.js使用coffeescript,但是我正在用香草javascript编写它们。

差异1

framerOnboard.card1.states.animationOptions({
    curve: "spring(200, 20, 0)"
});

framerOnboard.card1.states.animationOptions = {
    curve: "spring(200, 20, 0)"
};


差异2

framerOnboard.card1.states["switch"]("two");

framerOnboard.card1.states.switch("two");

最佳答案

差异1

animationOptions。-它是一个函数,它接收对象作为参数。该对象有一个键,该键有一个字符串值。

framerOnboard.card1.states.animationOptions({
    curve: "spring(200, 20, 0)"
});


animationOptions。-它是带有键的对象,此键具有字符串值。

framerOnboard.card1.states.animationOptions = {
    curve: "spring(200, 20, 0)"
};




差异2

没有区别。

检查以下示例:

var framerOnboard = {};
framerOnboard.card1 = {};
framerOnboard.card1.states = {};
framerOnboard.card1.states.switch = function(arg) // It's a function.
{
    alert(arg);
};


您可以通过两种方式执行此功能:

framerOnboard.card1.states["switch"]("two");


要么

framerOnboard.card1.states.switch("two");


http://jsfiddle.net/dannyjhonston/un693467/1/

10-02 14:49
查看更多