【面试题】js基本函数补全使其代码成立。简单题目。

Yexk_小叶
  • 51

题目描述

希望补充 bgRed 函数来使其代码成立。并且把DOM的背景变成红色。

题目来源及自己的思路

来自互联网,本人暂时还没有找到在内部就能够解决的办法。如果在函数外部可以先使用原型链给HTMLElement对象追加函数。可是在函数内部。我还没有找到解决办法。

相关代码

<div id="ds">我背景色应该是红色</div>
<script>
    function getId(o){
        return document.getElementById(o);
    }
    
    function bgRed(){
        // TODO 请补充该函数使其成立。
    }

    getId('ds').bgRed();
</script>

你期待的结果是什么?实际看到的错误信息又是什么?

期望结果是把dom的背景色变成红色。

回复
阅读 1.5k
4 个回答
CRIMX
  • 9.1k
✓ 已被采纳

狗屁题目应该用狗屁解法

 <div id="ds">我背景色应该是红色</div>
 <script>
     function getId(o){
         return document.getElementById(o);
     }
 
     function bgRed(){
         // TODO 请补充该函数使其成立。
+        }
+        HTMLElement.prototype.bgRed = function () {
+            this.style.background = 'red'
     }
 
     getId('ds').bgRed();
 </script>
夕水
  • 4.6k

我想你的题目是不是有点小问题,因为要想调用bgRed方法成功,就必须将定义好的方法绑定在dom上,代码如下:

function getId(str){
    var dom = document.getElementById(str);
    dom.bgRed = bgRed;
    return dom;
}
function bgRed(){
  this.style.background = '#f00';
}
getId('ds').bgRed();
//或者
function getId(str){
   return document.getElementById(str);
}
getId('bgred').bgRed = bgRed;
function bgRed(){
   this.style.background = '#f00';
}
getId('bgred').bgRed();

题目是错的!!!

getId('ds').bgRed()

getId('ds') 的结果是HTMLElement,但普通的HTMLElement对象是没有bgRed方法,怎么可能能执行

你确定这是面试题? 你确定代码只写在bgRed函数里面就能成立?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏