首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中命名对象属性的方法好吗?

在JavaScript中命名对象属性的方法好吗?
EN

Stack Overflow用户
提问于 2016-10-12 21:12:54
回答 1查看 58关注 0票数 2

我听说您的匿名函数的名称有助于调试。

JQuery:

代码语言:javascript
复制
$( "p" ).on( "click", function clickHndlr() {
    /* body...*/
});

节点:

代码语言:javascript
复制
var EventEmitter = require('events').EventEmitter,
    emitter = new events.EventEmitter();

    emitter.on('customEvent', function customEventHndlr (message, status) {
        /* body...*/
    });

Vanilla JS:

代码语言:javascript
复制
button.addEventListener('keypress', function buttonHndlr() {
    /* body...*/
});

但是对象呢?

代码语言:javascript
复制
var starShipChecker = (function() {
   var publicAPI = { 
     checkForWarpDrive : function(starShip){
       if(!starShip.hasOwnProperty('warpDrive')) {
           starShip.warpDrive = undefined;
           console.log('Your star-ship, the ' + starShip.name + ', now has warp-drive!' + 
           '\n' + 'Use the addWarpDrive method to apply the maximum warp relevant to your ship Class...');
       } else {
           console.log('Your star-ship, the ' + starShip.name + ', has warp-drive already!' +
           '\n' + 'But use the addWarpDriveMaxLevel method to apply the maximum warp relevant to your ship Class...');
       }
     },
    addWarpDriveMaxLevel : function(){}
   };
   return publicAPI;

})();

你会得到同样的好处吗?还是因为它们是方法而不同?

代码语言:javascript
复制
checkForWarpDrive : function checkWarpDriveLikeYouWereScotty(starShip){  /* body...*/},
addWarpDriveMaxLevel : function addWarpDriveLikeYouWereScotty(){  /* body...*/}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-12 21:17:31

是。同样的好处(and more)在那里。

然而,引擎/调试器正变得越来越智能化,并将根据它们所属的object属性的键隐式地命名函数。ES6甚至要求这样做(检查 property)。但是如果您使用的是ES6,那么您可能无论如何都在使用method definition :-)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40008445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档