Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment
Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment

Solid Multifunctional Foldable Telescopic Stick Self Defense Equipment

🔥FREE SHIPPING WORLDWIDE🔥
Price
$69.99
$36.99
Save  $33.00
85452 sold
Type(Shrink-Extend)
Please select a type(shrink-extend)
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

Self-defense is one of the main reasons people learn and practice martial arts.

These items tend to be small, discreet, and provide enough of a threat if you're under attack that simply pulling it out and showing you mean it can act as a deterrent. Real-life confrontations don't follow scripts, so carry some extra help just in case.

Carrying a self-defense tool that can help distract or change the mind of a potential attacker who thinks you are unarmed.

Made of military-grade aluminum alloy, these slats are strong yet lightweight for easy portability. When these tools are deployed, both telescoping shafts are steel so they can withstand any situation! There are rubber grips on each handle to prevent accidental slipping while in use. When used as a baton, two metal end caps are included to keep your tools from falling on you. Overall, this tools is ideal for any martial arts or self defense purpose!

These personal protective equipment make a great gift for loved ones who are feeling uncomfortable and vulnerable, but not trained in self-defense.

Product Description:

  • Diamond Pattern Design Connector
  • Military-grade aluminum alloy construction
  • Non-slip rubber grip on the handle
  • Two metal end caps when separated
  • Great for martial arts training or self defense