Категории объектов
В JavaScript есть три категории объектов: собственные объекты, хост-объекты и определяемые пользователем объекты.
Нативные объекты — это объекты, предоставляемые JavaScript. Примеры: строка, число, массив, изображение, дата, математика и т. Д.
Хост-объекты — это объекты, предоставляемые JavaScript средой браузера. Примерами этого являются окно, документ, формы и т. Д.
И пользовательские объекты — это те, которые определены вами, программистом.
Фундаментальная концепция в JavaScript состоит в том, что каждый элемент, который может содержать свойства и методы, является объектом, за исключением примитивных типов данных. Мы можем использовать встроенные функции конструктора JavaScript (как и те, которые мы создали) для создания объектов:
var Image1 = new Image(50,100);
Image1.src = "myDog.gif";
Здесь мы создали новый объект Image
Image()
-
width
-
height
-
src
JavaScript также включает функцию конструктора Object()
Object
var myObj = new Object();
К этому «базовому объекту» мы можем добавить свойства / методы. Каждый объект в JavaScript происходит от собственного Object
Давайте рассмотрим примитивный тип данных String:
var myString = "This is my string";
alert(myString); // displays "This is my string"
alert(typeof myString); // displays "string"
Тем не менее, мы можем даже сделать String объектом, используя функцию конструктора:
var myString = new String("This is my string");
alert(myString); // displays "This is my string"
alert(typeof myString); // displays "object"
Теперь мы создали объект String
Мы также можем сделать то же самое с Number и Boolean. Но почему мы хотим? Что ж, как только мы это сделаем, мы можем добавить отличительные свойства и методы к этому объекту. Примитивный тип данных содержит свойства и методы, заложенные в его конструкторе объектов, но сам он не может содержать никаких отличительных свойств / методов. Например, примитивный тип данных String содержит свойство length
String()
substring()
Однако объект String
String()
Теперь давайте создадим объект Number
var myNumber = new Number(2);
myNumber.doubleIt = new Function("return this*2");
alert(myNumber.doubleIt()); // displays 4
alert(typeof myNumber); // displays "object"
Итак, мы просто создали новый объект Number
doubleIt()
Обратите внимание, что typeof myNumber
Это связано с тем, что объекты могут содержать уникальные свойства и методы. Примитивные типы данных, такие как String, Boolean, Number, Undefined и Null, не могут, и это то, что отличает их.
Кроме того, в приведенном выше примере мы фактически создали еще один объект — объект Function
Однако объект Function
Когда мы создаем объект, мы сначала вводим ключевое слово new
Затем, используя возвращаемое значение (которое мы обычно назначаем переменной), мы можем добавить свойства и методы к этому объекту. Однако, поскольку объект Function
Итак, когда мы входим:
alert(typeof myNumber.doubleIt) // displays "function"
он отображает «функцию», а не «объект», как вы могли ожидать. Function()
Function()
Последний аргумент, переданный конструктору var myFunc = new Function("parameter1","parameter2",
"parameter3"," // function body");
myFunc("argument1","argument2","argument3");
Теперь мы можем вызвать эту функцию и указать три аргумента:
Function
Функциональные объекты
JavaScript-объект Function
Во-первых, это вызываемый блок кода. И функция всегда является объектом — она всегда обладает способностью содержать уникальные свойства и методы. Создание функции автоматически создает объект function myFuncObj(){}
myFuncObj.someVariable = "x";
alert(myFuncObj.someVariable) // displays "x"
new
Даже без Function()
Function()
Обратите внимание, что конструктор new
String
Давайте посмотрим на примитивный тип данных var pimitiveString1 = "This is a primitive string";
var pimitiveString2 = String("This is a primitive string");
var stringObject = new String("This is a String object");
primitiveString1.prop = "This is a property";
primitiveString2.prop = "This is a property";
stringObject.prop = "This is a property";
alert(primitiveString1.prop) // displays "undefined"
alert(primitiveString2.prop) // displays "undefined"
alert(stringObject.prop) // displays "This is a property"
alert(typeof primitiveString1); // displays "string"
alert(typeof primitiveString2); // displays "string"
alert(typeof stringObject) // displays "object"new
String
Здесь вы можете видеть, что без ключевого слова primitiveString1
primitiveString2
Вы также можете видеть, что primitiveString1/primitiveString2
stringObject
Обратите внимание, что typeof
var x = Date();
alert(typeof x); // displays "string"var myFuncObj = new Function();
Это даже верно для Date, Image, Option и других объектов. Например:
var myFuncObj = Function();
var myFuncObj = function(){}
function myFuncObj(){}
Function
Независимо от того, как вы создаете функцию (есть множество способов), вы автоматически создадите объект:
Circle
Здесь мы рассмотрели различные способы создания объекта Function, который способен содержать вызываемый блок кода, а также любые различные свойства или методы.
В итоге
Прежде чем мы продолжим, давайте рассмотрим некоторые ключевые моменты:
- В JavaScript есть пять примитивных типов данных: Undefined, Null, Boolean, Number и String.
- В JavaScript все является объектом, кроме примитивных типов данных.
- Объект представляет собой неупорядоченную коллекцию свойств. Свойства могут представлять примитивные типы данных, объекты или объекты
new
- В JavaScript есть три основные категории объектов: собственные объекты, хост-объекты и пользовательские объекты.
- Существует много встроенных, собственных объектов, таких как Object, Image, Date, Option и т. Д. Однако мы также можем создавать наши собственные определяемые пользователем объекты, такие как объект
this
- Конструктор объекта / функция конструктора объекта — это функция, которая используется для определения нового объекта. В этой функции мы объявляем начальные свойства / методы нового объекта и обычно присваиваем им предварительно определенное значение.
- Для создания экземпляра объекта мы используем ключевое слово «
myObj.myFunc()
Мы можем либо использовать встроенные конструкторы JavaScript для создания собственного объекта, либо мы можем создать наши собственные конструкторы для создания пользовательского объекта.
- Каждый метод объекта имеет переменную
yourObj.myFunc()
Пример:-
- yourObj.myFunc ()
В первом примере в
myFunc()
this
myObj
Однако во втором примере вmyFunc()
this
yourObj
-
Обратите внимание на часть 2, где мы рассмотрим аргументы, свойство прототипа и конструкторы на следующей неделе в SitePoint …
Если вам понравилось читать этот пост, вы полюбите Learnable ; место, чтобы узнать новые навыки и приемы у мастеров. Участники получают мгновенный доступ ко всем электронным книгам и интерактивным онлайн-курсам SitePoint, таким как JavaScript Programming for the Web .