mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-12 11:57:49 +00:00
Add _#toString and _#valueOf.
Former-commit-id: adb194b6270fc72f794c69343891a2e891b90051
This commit is contained in:
3
build.js
3
build.js
@@ -1413,6 +1413,9 @@
|
||||
// remove conditional `charCodeCallback` use from `_.max` and `_.min`
|
||||
source = source.replace(/!callback *&& *isString\(collection\)[\s\S]+?: */g, '');
|
||||
|
||||
// remove `lodash.prototype.toString` and `lodash.prototype.valueOf` assignments
|
||||
source = source.replace(/ *lodash\.prototype\.(?:toString|valueOf) *=.+\n/g, '');
|
||||
|
||||
// remove unused features from `createBound`
|
||||
if (buildMethods.indexOf('partial') == -1) {
|
||||
source = source.replace(matchFunction(source, 'createBound'), function(match) {
|
||||
|
||||
18
lodash.js
18
lodash.js
@@ -4043,6 +4043,22 @@
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Produces the `toString` result of the wrapped value.
|
||||
*
|
||||
* @name toString
|
||||
* @memberOf _
|
||||
* @category Chaining
|
||||
* @returns {String} Returns the string result.
|
||||
* @example
|
||||
*
|
||||
* _([1, 2, 3]).toString();
|
||||
* // => '1,2,3'
|
||||
*/
|
||||
function wrapperToString() {
|
||||
return String(this.__wrapped__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Extracts the wrapped value.
|
||||
*
|
||||
@@ -4196,7 +4212,9 @@
|
||||
// add `lodash.prototype.chain` after calling `mixin()` to avoid overwriting
|
||||
// it with the wrapped `lodash.chain`
|
||||
lodash.prototype.chain = wrapperChain;
|
||||
lodash.prototype.toString = wrapperToString;
|
||||
lodash.prototype.value = wrapperValue;
|
||||
lodash.prototype.valueOf = wrapperValue;
|
||||
|
||||
// add all mutator Array functions to the wrapper.
|
||||
forEach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {
|
||||
|
||||
@@ -694,7 +694,11 @@
|
||||
|
||||
equal(lodash.some([false, true, false]), true, '_.some: ' + basename);
|
||||
equal(lodash.template('${a}', object), '${a}', '_.template should ignore ES6 delimiters: ' + basename);
|
||||
equal(lodash(1).clone() instanceof lodash, false, '_(...) wrapped values are not chainable by default: ' + basename);
|
||||
|
||||
object = lodash(1);
|
||||
equal(object.clone() instanceof lodash, false, '_(...) wrapped values are not chainable by default: ' + basename);
|
||||
equal(String(object) === '1', false, '_.prototype should not implement its own `toString` method: ' + basename);
|
||||
equal(Number(object) === 1 , false, '_.prototype should not implement its own `valueOf` method: ' + basename);
|
||||
|
||||
start();
|
||||
});
|
||||
|
||||
22
test/test.js
22
test/test.js
@@ -1922,6 +1922,28 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('lodash(...).toString');
|
||||
|
||||
(function() {
|
||||
test('should return the `toString` result of the wrapped value', function() {
|
||||
var wrapped = _([1, 2, 3]);
|
||||
equal(String(wrapped), '1,2,3');
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('lodash(...).valueOf');
|
||||
|
||||
(function() {
|
||||
test('should return the `valueOf` result of the wrapped value', function() {
|
||||
var wrapped = _(123);
|
||||
equal(Number(wrapped), 123);
|
||||
});
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
QUnit.module('lodash methods');
|
||||
|
||||
(function() {
|
||||
|
||||
Reference in New Issue
Block a user