자체 구조 함수
1837 단어 구조 함수
/**
* @description function
* @function
* @obj this
*/
if(!Function.prototype.bind){
Function.prototype.bind = function(obj){
var slice = [].slice,
args = slice.call(arguments,1),
self = this,
nop = function(){},
bound = function(){
return self.apply(this instanceof nop ? this : (obj || {}),args.concat(slice.call(arguments)))
}
nop.prototype = self.prototype;
bound.prototype = new nop();
return bound
}
}
/**
* @description Class
* @function
* @public
*/
var Class = function(parent){
var Klass = function(){
this.init.apply(this,arguments)
}
/*
@init method
*/
Klass.prototype.init = function(){}
Klass.fn = Klass.prototype
/*
* @ description
* @ function
* @ public
* @ params {Object}
*
*/
if(parent){
var subClass = function(){}
subClass.prototype = parent;
Klass.fn = new subClass();
}
/*
* @ description
* @ function
* @ public
*/
Klass.proxy = function(func){
var self = this;
return (function(){
func.apply(self,arguments)
})
}
/*
* @ description
*/
Klass.extend = function(obj){
var extend = obj.extend
for(var i in obj){
if(obj.hasOwnProperty(i)){
Klass[i] = obj[i]
}
}
extend && extend(Klass)
}
Klass.include = function(obj){
var included = obj.included
for(var i in obj){
if(obj.hasOwnProperty(i)){
Klass.fn[i] = obj[i]
}
}
included && included(Klass)
}
Klass.fn.proxy = Klass.proxy;
return Klass
}
/*
Button
*/
var Button = new Class();
Button.include({
init : function(element){
this.element = $('#aa')
this.element.click(this.proxy(this.click))
},
click : function(){}
})
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
구조 함수를 빌려 비원형을 계승하다Object {tag: Array[3]} tag: Array[3] 0: "js" 1: "html" 2: "aa" length: 3 __proto__: Array[0] __proto__: Article construc...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.