我需要注入自己的函数而不是现有函数,同时保留所有原始属性。所以给出了这段代码:
var newFunc = function(foo) { return foo + 2; }
// copy the old lib.func.* to the newFunc
$.each(lib.func, function(k,v) { newFunc[k] = v; });
lib.func = newFunc;
我需要将原始lib.func.bar2()
替换为我自己的版本,同时保持其所有现有功能的完整性:
lib.func
以上似乎有效,因为当我调用SELECT
C.CustomerID, C.FirstName, C.LastName, OT.Date_Ordered, OT.Status,
CSR.EmployeeID, CSR.LastName, CSR.FirstName
FROM
Customer C
JOIN
CreditCard CC ON C.CustomerID = CC.CustomerID
JOIN
Order_Table OT (SELECT OT.Status FROM Order_Table OT WHERE OT.Status = 'Pending') ON CC.CreditCard_Number = OT.CreditCard_Number
JOIN
CustomerService_Rep CSR ON CSR.EmployeeID = OT.EmployeeID
GROUP BY
C.CustomerID, C.FirstName, C.LastName, OT.Date_Ordered, OT.Status,
CSR.EmployeeID, CSR.LastName, CSR.FirstName;
时,结果为12,但这似乎过于复杂,可能会导致其他问题。什么是正确的方法?有没有办法以某种方式将<div class="col-lg-9">
<?php
// Input form for choosing complaints
foreach (Complaints::getComplaints() as $complaint) {
?>
<div class="form-group">
<div class="checkbox">
<label>
<input type="checkbox" name="complaints[]" data-chkgrp="complaints[]"
data-error="Try selecting at least one...">
<?= Helper::sanitize($complaint->getName()) ?>
</label>
<div class="help-block with-errors"></div>
</div>
</div>
<?php
}
?>
</div>
上下文绑定到newFunc?或其他一些方式?
答案 0 :(得分:0)
您应该将属性分配给新功能,而不是旧功能:
$.each(obj.func, function(k,v) { newFunc[k] = v; });
答案 1 :(得分:0)
如果你想改变一个函数在被调用时的作用,而不是创建一个新的不同函数,那就需要改变[[Code]]内部属性,但大多数实现都不会暴露它。
但是,您可以尝试这种方法:
function code() {
return 123; /* Whatever */
}
function f() {
return code.apply(this, arguments); /* Redirect call to `code` */
}
f(); // 123
code = function() {
return 'abc'; /* Whatever else */
};
f(); // 'abc