小编cle*_*ort的帖子

覆盖特定功能的toString

在下面查看修改内容! 我目前正在寻找一种方法来重载动态生成(由函数返回)toString一个特定函数的方法。我知道我可以重载的toString功能Function.prototype,但这将重载所有 toString功能的所有功能,我想避免这种情况。

我的示例函数:

var obj = {
    callme: function() {
        return function() {
            // Dynamically fetch correct string from translations map
            return "call me, maybe"; 
        }
    }
}
// Binding callme to func, allowing easier access
var func = obj.callme.bind(obj); 
console.log(func, func())
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试将函数视为普通的JavaScript对象。

func.toString = function() {
    return this();
}
Run Code Online (Sandbox Code Playgroud)

这导致Function.prototype.toString仍然调用而不是func.toString

func.prototype无法尝试访问,该prototype属性未定义,因为它是一个函数而不是对象。不能选择覆盖toStringFunction.prototype也不能更改func为对象,因为这可能会破坏与代码较早部分的兼容性。 …

javascript overloading

5
推荐指数
1
解决办法
250
查看次数

如何将关联数组的PHP数组转移到javascript?

在我的PHP端,我有一组关联数组,如下所示:

Array (
   [0] => Array (
         [resultId] => 15
         [testId] => 4
         [accountId] => 35 
         [score] => 50
         [standard_deviation] => 0.5
         [answer_time] => 475.67
         [created_at] => 2012-09-20 01:45:05
         [groupId] => 4 
         [accountName] => hbbgrewkcx 
         [testName] => test1),
   [1] => Array (
         [resultId] => 14
         [testId] => 3
         [accountId] => 35
         [score] => 60
         [standard_deviation] => 0.5
         [average_answer_time] => 386.1
         [created_at] => 2012-09-20 01:44:56
         [groupId] => 4
         [accountName] => hbbgrewkcx
         [testName] => test2)
)
Run Code Online (Sandbox Code Playgroud)

我想将此数组传输到javascript端.如何使这个关联数组数组的javascript对应并访问所需的值?

基本上我想要与foreach在PHP中给我相同的功能:

foreach($ArrayOfArrays as $array)
{ …
Run Code Online (Sandbox Code Playgroud)

javascript php arrays associative

3
推荐指数
1
解决办法
351
查看次数

jQuery扩展了原型

嗨,我对jQuery和JavaScript相对较新,并对...的功能有疑问$.extend.我extend用来覆盖扩展"基类"的类的原型.让我们调用基Parent和儿童/扩展类AB.现在,当我使用$.extend(true, A.prototype, {someObject: {extraKey: 'value'}});它时,似乎原型Parent的内容也发生了变化someObject,如果几个对象/类继承自父项,则会导致非常奇怪的行为.这也只有在使用"深度"扩展时才会发生.

我设法通过使用相应的原型扩展一个空对象然后使用extend的返回值作为新原型来避免这个问题.例如A.prototype = $.extend(true, {}, A.prototype, {someObject: {extraKey: 'value'}});

为了显示问题,我创建了这个小jsfiddle:http://jsfiddle.net/x8UtF/12/

实际的问题:有没有办法绕过空的物体和东西去 extend(true, X.prototype, {});

javascript jquery

1
推荐指数
1
解决办法
8187
查看次数

标签 统计

javascript ×3

arrays ×1

associative ×1

jquery ×1

overloading ×1

php ×1