const interfaces = require('os').networkInterfaces()
let IPAddress = ''
for (let devName in interfaces) {
let iface = interfaces[devName]
for (let i = 0; i < iface.length; i++) {
let alias = iface[i]
if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) {
IPAddress = alias.address
}
}
}
function scrollToSomeWhere(ele, speed){
if(!speed) speed = 300;
if(!ele){
$("html,body").animate({scrollTop:0},speed);
}else{
if(ele.length>0) $("html,body").animate({scrollTop:$(ele).offset().top - 150},speed);
}
return false;
}
$('.contactUsBtn').click(function () {
scrollToSomeWhere('#toContactUs',300)
})
function isObject (value) {
const type = typeof value
return value !== null && (type === 'object' || type === 'function')
}
function merge (source, other) {
if (!this.isObject(source) || !this.isObject(other)) {
return other === undefined ? source : other
}
// 合并两个对象的 key,另外要区分数组的初始值为 []
return Object.keys({...source, ...other}).reduce((acc, key) => {
// 递归合并 value
acc[key] = this.merge(source[key], other[key])
return acc
}, Array.isArray(source) ? [] : {})
},
function zyEs6AssignPolyfill() {
if (!Object.assign) {
Object.defineProperty(Object, "assign", {
enumerable: false,
configurable: true,
writable: true,
value: function (target, firstSource) {
"use strict";
if (target === undefined || target === null)
throw new TypeError("Cannot convert first argument to object");
var to = Object(target);
for (var i = 1; i < arguments.length; i++) {
var nextSource = arguments[i];
if (nextSource === undefined || nextSource === null) continue;
var keysArray = Object.keys(Object(nextSource));
for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {
var nextKey = keysArray[nextIndex];
var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
if (desc !== undefined && desc.enumerable) to[nextKey] = nextSource[nextKey];
}
}
return to;
}
});
}
}