JS lang: 확장 js 언어 자체
function $A(iterable) {
if (!iterable) return [];
if (iterable.toArray) return iterable.toArray();
var length = iterable.length || 0, results = new Array(length);
while (length--) results[length] = iterable[length];
return results;
}
Function.prototype.bind = function() {
var __method = this, args = $A(arguments), object = args.shift();
return function() {
return __method.apply(object, args.concat($A(arguments)));
};
};
Function.prototype.bindAsEventListener = function() {
var __method = this, args = $A(arguments), object = args.shift();
return function(event) {
return __method.apply(object, [event || window.event].concat(args));
};
};
Object.keys = function(object) {
var keys = [];
for (var property in object)
keys.push(property);
return keys;
};
Object.isArray = function(object) {
return object && object.constructor === Array;
};
Array.prototype.concat = function() {
var array = [];
for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
for (var i = 0, length = arguments.length; i < length; i++) {
if (Object.isArray(arguments[i])) {
for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
array.push(arguments[i][j]);
} else {
array.push(arguments[i]);
}
}
return array;
};
Array.prototype.each=function(f){
for(var i=0;i<this.length;i++) f(this[i],i,this);
};
Array.prototype.include = function(object) {
var found = false;
this.each(function(value) {
if (value == object) {
found = true;
}
});
return found;
};
Array.prototype.clone = function(){
var len = this.length;
var r = [];
for(var i=0;i<len;i++){
if(typeof(this[i])=="undefined"||this[i]==null){
r[i] = this[i];
continue;
}
if(this[i].constructor==Array){
r[i] = this[i].clone();
}else{
r[i] = this[i];
}
}
return r;
};
Array.prototype.insert = function(index,data){
if(isNaN(index) || index<0 || index>this.length) {
this.push(data);
}else{
var temp = this.slice(index);
this[index]=data;
for (var i=0; i<temp.length; i++){
this[index+1+i]=temp[i];
}
}
return this;
};
Array.prototype.remove = function(s,dust){// dust ture,
var dustArr = null;
for(var i=0;i<this.length;i++){
if(s == this[i]){
dustArr=this.splice(i, 1)[0];
}
}
if(dust){
return dustArr;
}else{
dustArr=null;
return this;
}
};
Array.prototype.without = function(data){// dust ture,
var result = [];
for(var i=0;i<this.length;i++){
if(data == this[i]){
continue;
}
result.push(this[i]);
}
return result;
};
Array.prototype.indexOf = function(func){
var len = this.length;
for(var i=0;i<len;i++){
if (this[i]==arguments[0])
return i;
}
return -1;
};
Array.prototype.invoke = function(name) {
var args = $A(arguments);
args.shift();
for(var i=0; i<this.length; i++) {
this[i][name].apply(this[i], args);
}
};
Array.prototype.find = function(fun) {
for(var i=0; i<this.length; i++) {
if(fun(this[i])) {
return this[i];
}
}
};
Array.prototype.intersect = function(arr) {
var result = [];
for(var i=0; i<this.length; i++) {
if(arr.indexOf(this[i]) != -1) {
result.push(this[i]);
}
}
return result;
};
function $Element(ele) {
if(typeof ele == "string") {
ele = document.getElementById(ele);
}
$addMethod(ele);
return ele;
}
$E = $Element;
function $addMethod(ele) {
if(ele.__extended) {
return;
} else {
ele.__extended = true;
}
for(var p in _ObserveAble) {
ele[p] = _ObserveAble[p];
}
for(var p in _DomOperate) {
ele[p] = _DomOperate[p];
}
}
_DomOperate = {
/**
* @method getCenter get the element's center position
* @param {Element} dom
*/
getCenter: function(){
//dom = $E(this);
var pos = {left: this.offsetLeft, top: this.offsetTop};//dom.offset();
var width = this.clientWidth;
var height = this.clientHeight;
return {x: pos.left + width / 2, y:pos.top + height / 2};
}
};
_ObserveAble = {
observes:{},
fire: function(name, memo){
for(var p in this.observes) {
if(p == name) {
var event = {
meno: memo
};
observes[p](event);
break;
}
}
this.observes.invoke(name, memo);
},
observe: function(name, fun){
if(!this.observes[name]) {
this.observes[name] = fun;
}
},
stopObserving: function(name){
delete this.observes[name];
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.